【发布时间】:2013-10-16 16:32:04
【问题描述】:
对于此代码:
{
$params = explode("/\n/", $params);
$return = array();
foreach($params as $param) {
if (preg_match($key, $param)) {
$return[] = $param;
}
}
return implode("/\n/", $return);
}
我收到“警告:preg_match() [function.preg-match]:分隔符不能是字母数字或反斜杠”
谁能告诉我我缺少什么或需要改变什么?谢谢。
更多信息,这是从:
/**
* Filter (remove) a parameter from a parameter string
* @return string Filtered parameter String
* @param object $params
* @param object $key
*/
function filterParams($params, $key)
{
$params = explode("\n", $params);
$return = array();
foreach($params as $param) {
if (eregi($key, $param)) {
$return[] = $param;
}
}
return implode("\n", $return);
}
/**
* Return the JCE Editor's parameters
*
* @return object
*/
因为 PHP 5.3 升级时出现“ereg”错误。根据本网站上的信息,我在其他几个返回错误代码的地方对其进行了更改,并添加了正斜杠,除了这里,错误到处都消失了。让我补充一点,我不是程序员,只是网站管理员。我在这里没有我的元素。
【问题讨论】:
-
$key中有什么内容? -
旁注,
explode不使用正则表达式 -
也许在这里使用 preg_split("/\n/", $params) 比较合适。
-
这给了我这个错误:preg_split() 期望参数 2 是字符串,给定数组
-
现在你的 explode 函数是正确的,因为 $params 是一个字符串。顺便说一句,你能告诉我们关键是什么,这样我们就能准确地看到导致你错误的原因。
标签: php preg-match