PHP函数-将表单字段作为参数传递时出错



我创建了以下函数来从提交的表单字段中删除网址。我这样做是为了防止垃圾邮件。

<?PHP
function scrubURL($field)
{
return preg_replace('@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*    (\?\S+)?)?)*)(?:[?&]S+=S*)*@i', '', $_POST[$field]);
}
?>

我试图在表单处理中引用函数:$_POST['first']=scrubURL($_POSD['first'](;

我收到错误:未定义的索引:http://somewebsite.com

不知怎的,它传递的是表单中的值,而不是字段本身。我试着用引号包装字段,scrubURL("$_POST['first']&"(,得到了错误:语法错误,意外的'first'(T_STRING(,应为','或'('

我看不出原因,因为我在另一种形式上成功瘦了下来。我做错了什么?

函数参数$field包含$_POST['first']的值!您希望在您的示例中使用类似的函数调用
$_POST['first'] = scrubURL('first');

只是作为一个建议:我不会在你的功能中访问$_POST。这是更干净的代码。(

function scrubURL($dirtyUrl)
{
return preg_replace('@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*    (\?\S+)?)?)*)(?:[?&]S+=S*)*@i', '', $dirtyUrl);
}
$_POST['first'] = scrubURL($_POST['first']);

从您的代码中,您似乎只需要通过"第一个";作为参数:

$result = scrubURL('first');

最新更新