-2

初心者の質問

私は次の機能を持っています:

function isadult($description)
{
$bad=/*comma separated bad words*/;
$bad=explode(",",$bad);
foreach($bad as $key)
{
if(eregi($key,$description))
{
return true;
}
}
return false;
}  


if (isadult($description)) exit;
else

$descriptionこの関数を変数にも適用したい場合、この関数は変数にのみ適用されます$title。関数を変更するにはどうすればよいですか? でeregiエレギを変更する方法は廃止されましたpreg_matchか?

ありがとう

4

2 に答える 2

1

http://www.php.net/manual/en/functions.arguments.php

http://www.php.net/manual/en/function.preg-match.php

初心者はドキュメントを読むべきです;)

于 2011-05-30T07:42:22.550 に答える
1

$description$title変数の両方を関数に送信できます。関数宣言で指定された変数名は、関数スコープ内の変数名のみを参照しており、関数外の変数名は参照していません ($descriptionあなたの場合のように)。

試してみるif(isadult($title)) {と、うまくいくことがわかります。

外部変数 の値は関数変数$titleに入れられ、関数スコープ内 ( {}の間)として参照されます。 $description$description


eregi()この例では実際の正規表現マッチングを行っていないため、stripos()、または同様のものに置き換えることもできますstristr()...

if(stripos($description, $key) !== false) {

また、php で変換するのではなく、すぐに悪い言葉のリストを配列として定義する必要があります。

$bad = array('badword1','badword2','badword3');
于 2011-05-30T07:56:32.937 に答える