2011-01-11 10 views
3

Elloの隙間。PHPで改行を削除しても、MySQLのLONGTEXTで表示されます。

[OK]を - このように私の文字列を清掃:

$clean_string = preg_replace("/[\n\r]/"," ",trim($dirty_string)); 

..画面にそれをエコー、それが動作します - 無改行とテキストの1つの素敵な大きな塊。

これをMySQLのLONGTEXT型フィールドに挿入し、Sequel Proで結果データをプレビューします。何らかの理由で新しい行があります。私がそれをきれいにする前に、新しい時と同じように、それらの負荷。

私は間違っていますか?それはLONG​​TEXTですか?


これは私が文字列としてSOページのコンテンツを使用する場合、HTMLソースは次のようになります - 多くのスペースや改行を注意してください - 掃除しても!

mysql - Trouble with CONCAT and Longtext - Stack Overflow 





































       Stack Exchange 
+0

まだ古いレコードが表示されることがあります。挿入前にテーブルが空であることは確かですか? –

+0

「画面に表示する」と言うと、ブラウザウィンドウを参照していますか?もしそうなら、HTMLソースに改行がありますか? – lonesomeday

+0

@Ivan - 最新ではなく最新のインサート。 –

答えて

1

。今すぐ動作します。

$clean_str = str_replace(array('\r', '\n'), '', $dirty_string); 

おかげで、私は近くに取得するためのmfonda

+0

OK、それは新しい行ではなく、反スラッシュとn! –

1

これでうまくいくはずです。また、ここでpreg_replaceを使用する必要はありません。$clean_str = str_replace(array("\r", "\n"), '', $dirty_string)はうまく動作し、少し速くなります。

+0

これは\ r \ nだけでなく\ rや\ nでも使えますか? –

+0

@evilsawnはい、そうです。 – mfonda

+0

Sequel Proでプレビューされたときに結果の文字列に改行が残っています。 –

0

$clean_string = preg_replace('/\s+/m', ' ',trim($string));は、すべての「スペースシーケンス」を1つのスペースに置き換えます。それを試して、期待どおりに動作するかどうかを確認してください。 - 単一引用符のための二重引用符を置き換える

$clean_str = str_replace(array("\r", "\n"), '', $dirty_string); 

しかし:これを使用することによって解決

+0

Sequel Proでプレビューされたときに結果の文字列に改行が残っています。 :(それは表示されている 'タブ'文字かもしれません!? –

+0

/s +はタブを含むすべてのスペース文字をカバーしています。実際にデータベースに正しい文字列を挿入していないか、 – mfonda

0

すべての改行を削除した後にトリミングすることはどうですか?

$clean_str = trim(str_replace(array("\r", "\n"), '', $dirty_string)); 
関連する問題