0

テキスト領域のすべての空白を php に保持し (データベースに送信するため)、後でエコーして戻す方法を知りたいです。コードの場合、stackoverflowのようにやりたいのですが、どのアプローチが最適ですか?

今のところ私はこれを使用しています:

$text = str_replace(' ', '&nbs p;', $text);

空白は保持されますが、他の「挿入防止」メソッドと一緒' 'にテストしたことはありません。mysql_real_escape

理解を深めるために、後でdbから次のようにエコーしたい:

 function jack(){
    var x = "blablabla";
 }

御時間ありがとうございます。

4

2 に答える 2

1

コードブロック

次のようなコード ブロックを再作成しようとしている場合:

function test($param){
    return TRUE;
}

次に、で<pre></pre>タグを使用する必要がありますhtml

<pre>
    function test($param){
        return TRUE;
    }
</pre>

As plainhtmlは、複数のスペース/改行/タブが存在する場合でも、1 つのスペースのみを表示します。タグスペース内preはそのまま表示されます。

現時点では、次のhtmlようになります。

function test($param){
&nbsp;&nbsp;&nbsp;&nbsp;return TRUE;
}

私が提案するのは望ましくありません...

逃げる

使用mysql_real_escapeすると、改行をプレーンテキスト\nまたは\r\n. これは、コードが次のようなものを出力することを意味します。

function test($param){\n return TRUE;\n}

また

<pre>function test($param){\n    return TRUE;\n}</pre>

これを回避するには、\nまたは\r\n文字列を改行文字に置き換える必要があります。

preタグを使用すると仮定すると:

echo preg_replace('#(\\\r\\\n|\\\n)#', "\n", $escapedString);

html代わりに改行に切り替えたい場合は、に切り替える必要"\n"があり<br />ます。この場合は、スペース文字も切り替えたいと思います -タグ&nbsp;を使用することをお勧めします。pre

于 2013-09-28T17:19:58.613 に答える