已弃用的 eregi 调用,需要修复 preg_match

发布于 2024-11-25 02:41:27 字数 696 浏览 0 评论 0原文

我有一个开源程序,我正在尝试将其集成到网站中。我想更新其中导致我的开发 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(提前致谢)

I have an open source program I am trying to integrate in a website. I would like to update a code in it that is causing problems with my development LAMP setup.

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'");
            }

        }

I know that eregi call is deprecated and preg_match is what should be used but it gives me a the following error...

Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in

if someone could fix it and explain why I would be greatly appreciated.

TIA (Thanks In Advance)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晚风撩人 2024-12-02 02:41:27

您需要使用非字母数字和非反斜杠字符(每一侧相同)来包装 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)

You need to wrap a preg expression with a non-alphanumeric and non-backslash character (the same one on each side).

So, instead of this:

eregi('utf',strtolower($script_encoding))

This

// 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)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文