我有一个开源程序,我正在尝试整合到一个网站中。我想更新其中导致我的开发LAMP设置出现问题的代码。
if ($dbselect)
{
if (!eregi('utf',strtolower($script_encoding)) && !defined('IN_LOGINPAGE'))
{
mysql_query("SET NAMES 'utf8'");
}
else if (empty($script_encoding) || eregi('utf',strtolower($script_encoding)))
{
mysql_query("SET NAMES 'utf8'");
}
}
我知道eregi调用已被弃用,而preg_match应该被使用,但它会给我一个以下错误......
Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in
如果有人可以解决它并解释为什么我会非常感激。
TIA(提前致谢)
答案 0 :(得分:2)
您需要使用非字母数字和非反斜杠字符(每边都是相同的)包装preg表达式。
所以,而不是:
eregi('utf',strtolower($script_encoding))
此
// wrapped in '#' (# and / are the two most common. I use # almost exclusively in PHP
// so that I don't have to escape the /)
// i = case insensitive, so you don't need strtolower
preg_match('#utf#i',$script_encoding)