PHP 问题,下面这段里面把eregi 语句改成preg_match语句 php5.3不支持eregi(),用preg_match()替代。

foreach($GLOBALS['available_languages']as$lang=>$value){//$envType=1forthe'HTTP_ACCEP... foreach ($GLOBALS['available_languages'] as $lang => $value) {
// $envType = 1 for the 'HTTP_ACCEPT_LANGUAGE' environment variable,
// 2 for the 'HTTP_USER_AGENT' one
$expr = $value[0];
if (strpos($expr, '[-_]') === FALSE) {
$expr = str_replace('|', '([-_][[:alpha:]]{2,3})?|', $expr);
}
if (($envType == 1 && eregi('^(' . $expr . ')(;q=[0-9]\\.[0-9])?$', $str))
|| ($envType == 2 && eregi('(\(|\[|;[[:space:]])(' . $expr . ')(;|\]|\))', $str))) {
if (PMA_langSet($lang)) {
return true;
}
}
}
展开
 我来答
windblast
2016-09-07 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13617
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部

eregi 与 preg_match 的语法相差不大,试修改如下(由于条件限手搭制,未经测试):


if (($envType == 1 && preg_math('^(' . $expr . ')(;q=[0-9]\\.[0-9])?$/i', $str))
    || ($envType == 2 巧薯氏&& preg_math('(\(|\[|;[[:space:]])(' . $expr . ')(;|\]|\))/i', $str))) {
    if (PMA_langSet($lang)) {
        return true;
    }
}


eregi 使用 preg_match 配合  i 修正符替孝散代。

追问

没改之前还提示错误,改了之后直接网页错误

没改之前提示146行错误,就是那个,

改了之后

追答
一、错误的第1张截图,是 PHP 5.3 以上版本中,不支持eregi(),用preg_match()替代。

二、从你给出的代码中,eregi 牵涉到的两行,都只是做为判断条件,并没有做具体实际的动作。从上述代码看不到引起 500 错误的原因,建议你调试运行代码。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式