出現Deprecated: Function ereg_replace() is deprecated in 的原因及解決方法


在 php5.3環境下運行oscommerce,常常會出現Deprecated: Function ereg() is deprecated in...和Deprecated: Function ereg_replace() is deprecated in...這些類型的報錯提示。

  其原因在於:php5.3以上的版本不支持ereg()函數,而是使用preg_match()函數;不支持ereg_replace()函數,而使用preg_replace()函數。

 

  解決方法一:退回去用php5.2


  解決方法二:繼續用php5.3,但是修改devel/devel.modul的460行:if ($errno & (E_ALL ^ E_NOTICE)) {改為if ($errno &

  (E_ALL&~E_NOTICE&~E_DEPRECATED)) }把 deprecated錯誤給忽略掉


  解決方法三:將不支持的函數修改為支持的函數即可。
   
  例如:
  Deprecated: Function eregi() is deprecated in D:\www\oscommerce\catalog\includes\classes\language.php on line 87
  那么,將87行的
  if(eregi('^(' . $value . ')(;q=[0-9]\\.[0-9])?$', $this->browser_languages[$i])
  改為:
  if(preg_match('/^(' . $value . ')(;q=[0-9]\\.[0-9])?$/i', $this->browser_languages[$i])
   
  再例如:
  Deprecated: Function ereg_replace() is deprecated in C:\wamp\www\includes\functions\general.php on line 61
  那么,將61行的
  $string = ereg_replace(' +', ' ', trim($string)); 
  改為:
  $string = preg_replace('{ +}', ' ', trim($string)); 
   
  如此類推,其它類似的錯誤也可以按照上面兩個函數的語法來做修改。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM