dポイントプレゼントキャンペーン実施中!

PHPについては素人同然で
このような質問を失礼します。

$hensu に入っている文字と
$myword の文字(配列)とを比較して、
一致、不一致の処理を行いたいと考えています。

$myword にはNGのワードを複数入れたいので
$myword = explode(",", "ああ,いい,うう");
という処理をするつもりです。
NGワードですので今後も増える可能性が
ありますので。

このような形で処理する方法をお教えください。
何卒よろしくお願いします。

A 回答 (3件)

質問するときは二度手間になるので仕様をきちんと提示したほうがよいでしょう


こんな感じでどうでしょ?

<?
$pattern = "/ああ|いい|うう/";
$hensu="ああほげほげ";
if(preg_match($pattern,$hensu)) print $hensu."はNG";
$hensu="ふがふがうう";
if(preg_match($pattern,$hensu)) print $hensu."はNG";
$hensu="ええぴよぴよ";
if(preg_match($pattern,$hensu)) print $hensu."はNG";
?>
    • good
    • 0
この回答へのお礼

大変失礼いたしました。
おかげさまでなんとかなりそうです!
ありがとうございました

お礼日時:2008/05/22 11:46

ANo.2の方のようにpatternの文字列に組み立てておいてpreg_matchを使うのが一般的だと思いますが、そういう関数を知らなくても(あるいは正規表現に馴染みがなくても)関数リファレンスの文字列あたりを(webででも)眺めていれば「含まれる」というあたりでstrpos()くらいには行き当たりませんか。



  $ng = false;
  foreach ($myword as $word) {
    $pos = strpos($hensu, $word);
    if ($pos === 0 ) { continue; }
    $ng = true;
    break;
    }
  if ($ng) { print "「" . $hensuu . "」はNGワードです"; }

効率云々はおいといて、これでも動作はします。少々泥臭いですけど(苦笑
    • good
    • 0
この回答へのお礼

ありがとうございます。
「検索」や「一致」という言葉に目がいってましたので…
すいません

お礼日時:2008/05/22 11:46

in_array()かな?



<?
$myword = explode(",","ああ,いい,うう");
$hensu="ああ";
if(in_array($hensu,$myword)) print $hensu."はNG";
$hensu="ええ";
if(in_array($hensu,$myword)) print $hensu."はNG";
?>

この回答への補足

うまく一致しないですね…
$hensu の方は、RSSでデータを自動で受信しているため
中に何が入るかわからないんです…

$hensu(中身不明)、$myword(自分で指定した配列)
を比較して、自分で指定した文字が$hensuに含まれていたら
OK,やNGを出す形にしたかったんです…

補足日時:2008/05/22 02:04
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!