2011-07-18 24 views
0

PHPのMYSQLデータベースからページコンテンツを印刷しています。私は、DBへのユーザー入力を保管するときはphp htmlメタ記述タグから改行を削除

[「説明」] $行と呼ばれるデシベルでテキストフィールドを持っている私は(mysql_real_escape_stringのを使用)、私はHTMLを編集していないので、

問題は、私はのようにデシベルからこのフィールドを使用していますhtmlページのメタ記述タグ。したがって、ユーザが説明に改行を挿入すると、メタ記述タグ内のページのソースコードに改行が生じます。私はbr形式をスキップするループを使用して改行を削除しようとしました。私はbrに変換するnl2brを使用します。

$desc_array=(explode(" ", $row['description'])); 
for($i=0; $i < 17;$i++){ 
    if(nl2br($desc_array[$i])=="<br />" || nl2br($desc_array[$i])=="<br/>"){ 
     $i++; 
    } 

私は私のSQLファイルをチェックし、改行は、私があまりにも

$desc_array[$i])=="\r\n\r\n" 
$desc_array[$i])=="\r\n" 
$desc_array[$i])=="\n" 
$desc_array[$i])=="\r" 

のように、このフォーマットをチェックしようとしていますが、まだ改行が説明に印刷されます

\r\n\r\n 

として表示されますタグ。何か案は?

+0

explodeを実行した後、 'var_dump($ desc_array)'を実行してみてください。各要素がどのようになるか、そしてどれくらい長くなるか(文字列の長さ)を正確に表示します。それは隠されたキャラクターがそこにあるのかあなたに考えを与えるでしょう。 –

+0

var_dump()を試して、改行文字を表示していないようです。 ([14] => string(17) "バルコニーがあります。[15] => string(2)" is ")" balcony "の間に改行があることに注意してください。しかし、これは同じ文字列のちょっとした部分を示していますか? – daza166

+0

ページソースを表示する - ブラウザのHTMLビューは、テキスト行区切り文字を受け入れず、非表示またはスペース文字として扱います。 –

答えて

5
$string = str_replace(array("\r", "\n"), array('', ''), $string); 
0

私はこのような状況に何度も遭遇したように私の意見を述べます。

ときどきトリミングすると\r\n\nが役立つことがあります。

<?php 
$desc = "This 
is a description"; 
// this is just a line break [enter] 
$newDesc = str_replace(" 
", " ", $desc); // witch outputs This is a description 
?> 

私はそれを望んでいない理由を見つけるために好奇心を持っていたことはありません\ r \ nまたは\ nは、多分私はfoindます:いくつかのケースで は、私はそうのように削除する必要があることが分かりました今すぐ:)

+0

'\ r \ n 'を置き換えて' \ r'をつけてから '\ n'を使うチャンスがあります:) –

関連する問題