PHPで特定の文字を削除しようと思い、
strpos関数を使用した時にうまくいかなかったときのはなし。
$string = 'aaaxxxbbbcccddd';
変数stringには「aaaxxxbbbcccddd」が格納されています。
xxxを消したい場合、どのようなプログラムを書けばよいか。
上のような状況になったとき、$stringのxxxを空白文字に書き換えればいいのでは・・・と
下記のように書きました。
if ( strpos ($string, 'xxx') != FALSE ) {
$string = str_replace('xxx', '', $string);
}
しかし、これでは思ったように動かないようです。
strpos関数の戻り値は、'xxx'があれば0以上の数値。
なければFALSEだそうです。
ん・・・?
そうなんです。
0とFALSEは別物ということに気づきませんでした(小声)
正しくは下記のようになります。
if ( strpos ($string, 'xxx') !== FALSE ) {
$string = str_replace('xxx', '', $string);
}