2009-06-03 13 views
0

私はphpを使っていくつかのhtmlコードを受け取るjavascript関数を使用しています。 PHPの文字列ではなく、拡張子が.phpのHTMLファイルです。PHPを使ってhtmlでキャリッジリターンを削除するには?

htmlコードがjs関数のパラメータとして送信されるので、キャリッジリターンを含むことはできません。問題は、HTMLの大きなブロックを1行に書くのはひどいことです。コンテンツを送信する前にキャリッジリターンを消去する機能しか持たせたいと思います。

このような機能のソースはありますか?

ありがとうございます!

答えて

6

シンプル

echo str_replace(array("\r\n", "\r", "\n"), null, $htmlCode); 
1

"PHPでビルドする"というのは、関連するHTMLを含む文字列を作成していると思います。

この場合、文字列の一部としてキャリッジリターンを持たないというのは簡単なことです。

foo = " this is my string 
     and I have it on two lines"; 

をではなく、これは

foo = "" . 
     " this is my string" . 
     " and it's on one line "; 

確かに、あなたはstring.replace機能を使用することができませんが、concatsを介した建物は、あなたが得ることを意味します

すなわち、これをしませんそのステップをスキップしてください。

+1

を=ではなく、 + =。 – Chuck

+0

aye ..私は今から6年後の間に、私はPHPを書いた最後の時間を責めます –

-1

XML writerを使用することを検討してください。これがjavascriptで解析されている場合です。そうすれば、結果は常に有効になり、コードはより洗練されたものになるはずです。

+0

パフォーマンスに影響を与える過度の気分になります –

+0

ほとんどの場合、ディスクI/Oが主要なボトルネックです。私はこのようにして結果をキャッシュします。 – runfalk

1

あなたは「PHPファイルに」、私はあなたがこのようになりますファイルをINGのあなたはinclude()している意味と仮定言う:

<html> 
    <head><title>Foo</title></head> 
    <body> 
    <?php do_stuff(); ?> 
    </body> 
</html> 

そのような場合、あなたが探しているものですOutput Controlと呼ばれ、準備が整うまでデータが送信されないようにするか、追加の処理のために文字列にデータを取り込むことができます。インクルードファイルからキャリッジリターンを削除するには、この操作を行うことができます。

<?php 

ob_start();      // start buffering output 
include("foo.php");    // include your file 
$foo = ob_get_contents();   // get a copy of the buffer's contents 
ob_clean_end();     // discard the buffer and turn off buffering 
echo str_replace("\r", "", $foo); // print output w/o carriage returns 

あなたにも改行を削除したい場合は、その最後の行に変更します。私はあなたが意味を考える

echo str_replace(array("\n", "\r"), "", $foo); 
関連する問題