2011-01-03 10 views
2

私はfile_get_contents()を使用してWebページからすべてのコンテンツを取得するスクリプトを開発しています。その後、すべてのHTML、JavaScript、およびCSSの書式が削除され、変数に格納されます。新しい行を置換する| PHP

次に、その変数をJavaScript変数に割り当てます。 私の問題は、テキスト(JavaScript varに割り当てたテキスト)にプログラムを実行する際にJavaScriptエラーが発生する多くの改行が含まれていることです。

簡易str_replace("\n", "", $text);は私のためには機能しませんでした。私はまた、ltrimtrimrtrimを試しました。

答えて

4

文字列をJavaScript変数に割り当てる場合は、json_encodeを使用できます。このよう

<script type="text/javascript"> 
var g_text = <?php echo json_encode($text); ?>; 
</script> 

注:また、JavaScriptにこの方法を配列し、番号を渡すことができます。

+0

Hey guyz thansksあなたのすべて...特別にタイとケアリーチョウ – Ayush

1

str_replace("\r\n", "", $text);を試しましたか?

1

このコードを試してください。すべてのOSで可能なすべての改行を置き換えます。

str_replace("\r\n", "", $text); // Replace CR+LF 
str_replace("\r", "", $text); // Replace CR 
str_replace("\n", "", $text); // Replace LF 
+1

CRとLFを交換すると、CR + LFの交換は役に立たなくなります。 – daniels

0

保存された文字列にhtmlが含まれているとしますか? nl2brを使用して\ nをBRタグに変換することができます。そこ複数の呼び出しのために、または複数の組み合わせを持つための必要はません...しかし、それはまだ3可能ラインの世話を

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

または

$string = strtr($string, "\r\n", ''); 

2

は1回のだけの呼び出しを必要とします終了シーケンス(Windows \r\n、Linux \n、Mac \r)...

0

FYI:必ず二重q改行文字を検索/置換するときに使用されます。次のような一重引用符を使用する場合:

print str_replace(array('\n', '\r\n', '\r'), '', $strBorked); 

これは決してうまくいかないでしょう! PHPは、単一引用符の内側に解釈しないので、

print str_replace(array("\n", "\r\n", "\r"), '', $strBorked); 

これは、と\ nは、文字PHPは場合にのみ、二重引用符の内側にリテラルの改行に変換される:あなたが使用する必要があります。もちろんこれはすべての制御文字に当てはまります。

関連する問題