-1

这是我收到的错误

Deprecated: Function eregi() is deprecated in /home/socia125/public_html/profile.php on                  
line231

这是我的代码

// Loop through the array of user agents and matching operating systems
   foreach($OSList as $CurrOS=>$Match) {
    // Find a match
    if (eregi($Match, $agent)) {
            break;

任何帮助表示赞赏

4

3 回答 3

2

好吧,正如手册引用的那样

自 PHP 5.3.0 起,该函数已被弃用。强烈建议不要依赖此功能。

改为使用preg_match()。不过要小心一点,因为您无法将搜索模式 1:1 从eregi转换为preg_match().

显示差异的示例:

$t = "this is a test...";
if (preg_match("/test/i", $t)) echo "match!";
if (eregi('test', $t)) echo "match!";

php 手册中有一整章专门介绍 PCRE 语法。

但是,如果您只是简单地尝试查找字符串,请使用strstror之类的东西stristr,它们会更快更容易使用。

于 2012-06-11T13:34:39.097 回答
1

使用preg_match而不是eregi.

但似乎它所做的只是搜索一个字符串,所以你也许可以使用它stripos

// Loop through the array of user agents and matching operating systems
   foreach($OSList as $CurrOS=>$Match) {
    // Find a match
    if (stripos($Match, $agent) !== FALSE ) {
            break;

我不能保证它可以正常工作,因为我们看不到所有代码(尤其是 and 的内容和示例$Match$agent

于 2012-06-11T13:34:07.273 回答
0

从 5.3 开始不推荐使用 eregi()。您可以忽略它,因为它只是一个警告。

我建议改用 preg_match() 。

请参阅此处的链接

于 2012-06-11T13:32:29.847 回答