1

サイトを解析してプレーンテキストを印刷すると、str_replaceでは削除できない多くの改行文字が印刷出力に表示されます。

たとえば、eBayを解析して終了時刻を探すと、

$ebayEndTime = $this->html_simple_dom->find( 'span[class=vi-tm-left]', 0 )->plaintext;

印刷では、次のようになります。

\ t \ t \ t \ t \ t(2013年3月19日\ n \ t \ t \ t \ t \ t15:10:11 PDT)\ n \ t \ t \ t

削除しようとしても効果はありません。

$search = array('\n', '\t', '\r');
error_log("end time:" .  str_replace( $search, " ", $ebayEndTime));

それでも結果は次のようになります。

\ t \ t \ t \ t \ t(2013年3月19日\ n \ t \ t \ t \ t \ t15:10:11 PDT)\ n \ t \ t \ t

改行/タブを削除するにはどうすればよいですか?私はこれを徹底的に試みました:

$search = array('\n', '\t', '\r', '\\n', '\\t', '\\r', '\\\\n', '\\\t', '\\\r', '\\\\n', '\\\\t', '\\\\r');

Javaではエスケープ文字をエスケープする必要があることを知っていますが、これはログファイルに出力されるため、「\」のhtmlコードを使用して出力しますか?

4

1 に答える 1

0

どうですか:

$str = "\t\t\t\t\t(Mar 19, 2013\n\t\t\t\t\t15:10:11 PDT)\n\t\t\t";
echo trim(preg_replace('/\s+/', ' ', $str));
#=>(Mar 19, 2013 15:10:11 PDT)
于 2013-03-21T08:25:47.277 に答える