0

PHP の文字列から余分な空白文字をすべて削除しようとしています。文字列ソースは、カスタマー レビューの xml フィードからのものです。

いくつかのレビューに空白が多すぎて、HTML に表示されています! それが何であれ...スペースバーが何度も打たれている、キャリッジリターン、改行、' '文字間に最大1つのスペースが必要です。

$review = str_replace(array('\n','\r\n',PHP_EOL,'\0','\t'), '', $reviewText[1]);
$review = trim(ereg_replace(' +', ' ', $review));

私もラインpreg_replace('/\s\s+/', ' ', $review);の代わりに使ってみましたtrim(ereg_replace(

私の最善の努力にもかかわらず、私はまだこの目に見えない空白/改行文字を消すことができません.

何か案は?

あらゆる種類の識別情報を置き換えるために、以下のレビューを xxx に貼り付けました。これは、からの出力ですvar_dump($review);

以下、レビューです。

http://www.mangomm.co.uk/test/string.php

4

2 に答える 2

1

rtrim() ltrim() トリム()

これらはあなたが探していることをするはずです。

trim('----')'' を出力する必要があります

rtrim('----a----');「----a」を出力する必要があります

ltrim('----a----');「a----」を出力する必要があります

各ハイフンはスペースを表します。

編集:

そして、あなたの投稿を読んだ後:)

改行は改行(<br>, <br />など)ですか?print_rテキストを htmlentities に変換しません

于 2013-01-09T00:13:12.410 に答える
1

ereg_*関数は非推奨です。それらを使用しないでください。

次の正規表現が機能するはずです

preg_replace('/[[:space:]]+/', ' ', $review);

[:space:]空白文字に一致します。「C」および「POSIX」ロケールでは、これらはスペース、用紙送り ( \f)、改行 ( \n) 、改行 ( \r)、水平タブ ( \t)、および垂直タブ ( \v)です。

于 2013-01-09T00:11:04.893 に答える