- ベストアンサー
指定の文字を入れ替えることについて!
こんばんわっ! 最近は寒くなってきました。 インフルエンザは大丈夫ですか皆さん。 さて早速質問行かせて頂きます。 フォームの入力値に絵文字が入っていたら取り除くと言う事をしてたんですけど。。。 バイナリ値に分解は出来ました。 分解を行い絵文字を〓にしたいと思っています。 $_POST[1] = str_replace('/\[d:(F[346789][0-F]{2})\]/e', '〓', $_POST[1]); にしてみましてけどだめでした。 $_POST[1] = str_replace('/BAD\+(F[346789][0-F]{2})/', '[★]', $_POST[1]); を加えてみてもだめでした。 preg_replace にしてみてもだめでした。 どこが間違っていますか!!!
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
まず、str_replace関数は正規表現に対応していないので、preg_replace関数を使う必要があります。 また、検索文字列にe修飾子を付けていますが、これは置換文字列がPHPコードの場合に指定するものなので、今回のように'〓'に変換する場合には指定しません。 なので、下記のように書けばうまくいくと思いますよ。 $_POST[1] = preg_replace('/\[d:(F[346789][0-F]{2})\]/', '〓', $_POST[1]);
その他の回答 (1)
- hogehoge78
- ベストアンサー率80% (433/539)
$_POST[1]はPOSTされた値そのままではないですか? 一度バイナリに分解する処理を通した値にしないとダメだと思います。
お礼
おせわになっておりますっ! >>$_POST[1]はPOSTされた値そのままではないですか? そうです! [d:○○○○]みたいになっています。 一応バイナリ値に変換は出来たみたいです。 substitute_characterを使いました。 説明不足でした。 すみませんでした。 分解自体は成功していると思います。 hogehoge78さんありがとうございましたっ!p(^-^)q
補足
理想的にはこう言う感じになります。 $_POST[1] =str_replace(array(/\[d:(F[346789][0-F]{2})\]/e), "〓", $_POST[1]); 出来ません・・・。
お礼
こんばんわっ! preg_replaceだったんですか・・・。 何度してみてもだめなはずでした。 ありがとうございます!
補足
できました(*^-^*) 助かりました。 皆様ありがとうございましたっ!