2011-10-18 13 views
1

私はdbからこのようなテキストを取得します。php文字列を "invisible chars"( n)に置き換えます。

{br}{/br}hello!{br}{/br} 

このテキストは、textarea要素内に出力されます。

私が必要とするのは、'{br}{/br}'をすべて、テキストボックス自体に入力スペースを設定する不可視の文字'\n'に置き換えることです。期待しています:)

私は何をしようとしています。

$text = str_replace('{br}','\n',$text); 
     $text = str_replace('{/br}','\n',$text); 

テキストエリアで、出力$textが、文字\nが表示されます:|

+0

'/ N 'は改行ではなくスペースを(私はそれはあなたがが何をしたい、おそらくだと思う)追加されますを使用してみてください。 – Spudley

+0

ええ、私はテキスト領域に入力スペースのための文字が必要だと私は\ nを使用してみて間違ってsomenthing、私はリテラルが\ n textareaとbreaklineが追加されていない参照してください原因: – sbaaaang

+1

http://php.net/manual/en/language.types.string.phpこれを読んで、「\ n」と「\ n」が異なることを示します。 – TJHeuvel

答えて

2

str_replaceを使用すると、改行として解釈されるため、二重引用符"\n"が使用されます。一重引用符で囲まれた'\n'は、リテラルのバックスラッシュとそれに続くnです。

$text = str_replace('{br}{/br}', "\n", $text); 

あなたは{/br}ため{br}、一度に一度str_replaceを呼んでいる理由は、私はよく分かりません。 {br}{/br}の各ペアを2つの新しい行に置き換えますか?もしそうなら、あなたができるよりは、単純に1回の呼び出しであること:

$text = str_replace('{br}{/br}', "\n\n", $text); 
+1

omg my savior !!!!! – sbaaaang

1

あなたは二重引用符ではなく、単一引用符で\nを配置する必要があります。変数とエスケープシーケンスは、一重引用符で囲まれません。また、文字列全体を{br}{/br}に置き換えて1つの新しい行にしたいと思うでしょう。あなたがしたことを2行に置き換えます。

ので:

$text = str_replace('{br}{/br}',"\n",$text); 

は、あなたが望むものと考えられます。 thisを読んでみる価値があるので、PHPで文字列を使って/できないことを知ることができます。

1

は、二重引用符

$text = str_replace('{/br}', "\n", $text); 
関連する問題