$_GET['search']
次の文字列をインポートします: " first second \ \ third
" ("second" と "third" の間のスペースは単なる空白です。SO のテキスト領域では複数の連続した空白を許可しないため、スラッシュが追加されます)。
次のスクリプトは、インポートされた文字列を処理します。
$searchString = $_GET['search'];
$searchString = preg_replace('/(\W)(\S)(\s+)/', '', $searchString);
echo $searchString . ' ';
print_r( explode(' ', $searchString) );
奇妙なことに、次の結果になります。
first second third Array ( [0] => first [1] => second [2] => [3] => [4] => third )
つまり、予想どおり空白は削除されますが$searchString
、echo
PHPexplode
はそれらを「再挿入」しているようです。どうすればいいの?