web-dev-qa-db-ja.com

php複数のスペースを単一のスペースに置き換える

複数のスペースを単一のスペースに置き換えようとしています。 ereg_replaceを使用すると、廃止されるというエラーが表示されます。

ereg_replace("[ \t\n\r]+", " ", $string);

同等の代替品はありますか?複数の" "の空白と複数のnbspの空白を単一の空白に置き換える必要があります。

172
Dani

preg_replace() を使用し、[ \t\n\r]の代わりに\sを使用します。

$output = preg_replace('!\s+!', ' ', $input);

From 正規表現の基本構文リファレンス

\ d、\ w、および\ s

数字、単語文字(文字、数字、アンダースコア)、および空白(スペース、タブ、改行)に一致する略記文字クラス。文字クラスの内外で使用できます。

363
cletus
$output = preg_replace('/\s+/', ' ',$input);

\ sは[ \t\n\r]の省略形です。複数のスペースは単一のスペースに置き換えられます。

42
Somnath Muluk
preg_replace("/[[:blank:]]+/"," ",$input)
37
ghostdog74