有关折旧eregi的错误

时间:2012-06-11 13:26:39

标签: php

这是我收到的错误

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;

感谢任何帮助

3 个答案:

答案 0 :(得分:2)

好吧,as the manual quotes

  

自PHP 5.3.0起,此功能已被弃用。依靠这个   功能非常沮丧。

请改用preg_match()。但请注意,因为您无法将搜索模式从eregi转换为preg_match()whole chapter

显示差异的示例:

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

php手册中有strstr专用于PCRE语法。

但是,如果您只是尝试查找字符串,请使用stristr或{{3}}之类的内容,这些字符串更快更容易使用。

答案 1 :(得分: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;

我不能保证它能正常工作,因为我们没有看到所有代码(特别是$Match$agent的内容和示例值)

答案 2 :(得分:0)

eregi()自5.3起已弃用。 您可以忽略它,因为它只是一个警告。

我建议改用preg_match()。

请参阅链接here