2011-12-08 19 views
0

いくつかのテキストエリアに問題があります。HTMLタグをエコーするPHP

$str  = $_POST['content']; 
$order = array("\r\n", "\n", "\r"); 
$replace = '<br />'; 
$content = mysql_real_escape_string(str_replace($order, $replace, $str)); 

と結果:\ nと\ rのうちのHTMLタグを作るために示されているように私は私のPHPファイルは、その上にいくつかのものを実行します

<textarea id="e1" name="content"></textarea> 

のようにテキストエリアを使用して、私のデータベースにテキストを挿入しますデータベースに挿入されます。 私はその後、$contentでデータベースから結果を呼び出すので、などのテキスト領域にそれを置く:私は、そのページに<br />タグを表示すると

<textarea id="e1" name="content"><?php echo $content ?></textarea> 

が表示されます。
アン例:
私はそれは私のPHPコードによって処理されますし、その後、テキストエリアにエコーされ

Hello, 
This is text. 
Best Rergards, 
Testificus 

テキストエリアにこれを提出します。形で出てくるテキストエリアにエコーされた場合:

Hello,<br />This is text.<br />Best Regards,<br />Testificus 

は、テキストではなくテキストとして提示されていることを行動で<br />タグと前のように見えたの方法はありますか?あなたの助けてくれてありがとう、私が何を意味するか分からない場合は教えてください。

+0

は、使用してみてください – mymotherland

+0

($ strの、$置き換え、$順位を)str_replaceを削除します。 mysql_real_escape_stringで十分です。 – dfsq

+0

@dfsq str_replaceは/ nタグを
タグに変換することです(テキストは後でhtml形式でメール送信されるため)。 – JustinPGriffen

答えて

0

私は正しく、改行を<br />タグに置き換えますか?あなたはただnl2br()を使ってみませんか?

あなたはあなたの例を使用し続けたい場合は、あなたが使用する必要があります。

$replace = "<br />\r\n";

+0

「L」ではなく「1」である – sascha

+0

ありがとうございました! – JustinPGriffen

0

私はそれがどのように有効ではわかりませんが、動作するはず改行の代わりに

&#10; 

+0

興味がありません。どうすればできますか?それは何ですか? – JustinPGriffen

+0

$ replace = ' 'に変更してください。 –

1

あなたがHTMLに出力したいときは、単に実行し、その後、データベースに\r\n年代を残すことができのテキストは、<br>要素の新しい行を交換します。このようにすれば、余分な変換について心配する必要はなく、必要なときに一度だけ実行されます。

0

このコードを使用してコード

$str  = $_POST['content']; 
$order = array("\r\n", "\n", "\r"); 
$replace = '<br />'; 
$content = mysql_real_escape_string(str_replace($order, $replace, $str)); 

を置き換えます。<?phpのエコーstrip_tags($コンテンツ)>

$str  = $_POST['content']; 
$content = mysql_real_escape_string(nl2br($str)); 
関連する問題