【发布时间】:2020-06-23 23:42:22
【问题描述】:
我将 PHP 版本从 PHP 5.3 升级到 PHP 7.4 并遇到错误。
if(!function_exists('ereg')) { function ereg($pattern, $subject, &$matches) { return preg_match('/'.$pattern.'/', $subject, $matches); } }
if(!function_exists('eregi')) { function eregi($pattern, $subject, &$matches) { return preg_match('/'.$pattern.'/i', $subject, $matches); } }
if(!function_exists('ereg_replace')) { function ereg_replace($pattern, $replacement, $string) { return preg_replace('/'.$pattern.'/', $replacement, $string); } }
if(!function_exists('eregi_replace')) { function eregi_replace($pattern, $replacement, $string) { return preg_replace('/'.$pattern.'/i', $replacement, $string); } }
此行出现错误:
if (eregi($urlregex, $URL)) { if($debug == "true") { logtofile("Debug :".$URL." is a valid URL."); } return $URL; }
错误是
致命错误:未捕获的 ArgumentCountError:参数太少 函数eregi(), 2 传入 C:\xampp\htdocs\bank\livechat\Code\library\jqSajax.class.php 上线 171 和 3 预计在 C:\xampp\htdocs\bank\livechat\Code\include\main_pre_body.php:5
我像这样把eregi()改成了preg_match()
if (preg_match($urlregex, $URL))
{
if($debug == "true")
{
logtofile("Debug :".$URL." is a valid URL.");
}
return $URL;
}
else
{
if($debug == "true")
{
logtofile("Error :".$URL." is not a valid URL.");
}
return "";
}
}
现在它显示了这个:
"警告: preg_match(): 未知修饰符'?'在 C:\xampp\htdocs\bank\livechat\Code\library\jqSajax.class.php 第 171 行
"
谢谢
【问题讨论】:
-
哪个正则表达式触发了这个错误?你可以试试
var_dump($urlregex)吗? -
如果 var_dump using (eregi($urlregex, $URL)) imgur.com/rRzFN0Q 会显示此错误
-
和 C:\xampp\htdocs\bank\livechat\Code\include\main_pre_body.php 第 5 行是 imgur.com/dtSBpcO