エスケープされたテキストをクライアントからサーバーで実行されているphpページに送信するajaxを実行しています。テキストにはキャリッジリターンが含まれています。phpを使用してこれらをエコーアウトすると、テキストにとして表示されます\n
。
しかし、を\n
使用して置き換えようとするstr_replace
と、関数はそれらを見つけられません。
これは私を夢中にさせています。
対照的に、私は同じphpファイルに多数の\n
sを含む変数を手動で作成しましたstr_replace
。その場合、同じコードで変数が正常に置き換えられました。
目に見えないキャラクターや何かがそれを捨てている可能性はありますか?
提案をありがとう。
次の置換(すべてPHPで)は正常に機能します
$var = "some text\nsomemore text\nsome more text\nsome more";
echo $var; //displays above text
$strComma = str_replace("\n",",",$var);
echo "strComma".$strComma; \\all of the \n instances are replaced by comma
次の置換は機能しません
javascript(省略形)
var text = document.getElementById(textbox).value; //grabs text from client html
var text2 = escape(text); //escape needed to handle special characters in text
//send to php page
xmlhttp.open("GET","storetext.php?text="+text2,true);
xmlhttp.send();
PHP
$var = $_REQUEST['text'];
echo $var; //displays \n as above. So far so good.
$strComma = str_replace("\n",",",$var);
echo "strComma".$strComma; \\ replacement does not take place
これは機能するはずです:
$strComma = str_replace("\\n",",",$var);
2つの円記号とn文字。エスケープシーケンスをエスケープするようなものです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加