回答:
他の人がを使用してそれを行う方法を説明しているのでstr_replace
、これを達成するために正規表現を使用することもできます。
$name = preg_replace('/\s+/', '_', $name);
$name = str_replace(' ', '_', $name);
http://php.net/str_replaceを呼び出します。$input = str_replace(' ', '_', $input);
str_replaceを使用します。
str_replace(" ","_","Alex Newton");
これは私のファイルの名前を付けるためにスペースをアンダースコアに変える私のコードの一部です:
$file = basename($_FILES['upload']['name']);
$file = str_replace(' ','_',$file);
Strtr
文字列の代わりに単一の文字を置き換えるので、この例の良い解決策です。おそらくstrtr
よりも高速ですstr_replace
(ただし、この使用例ではどちらも計り知れないほど高速です)。
echo strtr('Alex Newton',' ','_');
//outputs: Alex_Newton
str_replace
-それは明白な解決策です。しかし、時々あなたは正確にそこにある空間が何であるかを知る必要がある。csvファイルのスペースに問題があります。
2つの文字がありましたが、1つは0160(0x0A0)で、もう1つは表示されませんでした(0x0C2)
私の最終的な解決策:
$str = preg_replace('/\xC2\xA0+/', '', $str);
mcのHEXビューアからの見えないシンボルを見つけました(真夜中のビューア-F3-F9)
'/\s+/'
ですか?