-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不推荐使用如何更改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 回答