zoukankan      html  css  js  c++  java
  • Function ereg() is deprecated in

    PHP 5.3 ereg() 无法正常使用,提示“Function ereg() is deprecated Error”。问题根源是php中有两种正则表示方法,一个是posix,一个是perl,php6打算废除posix的正则表示方法所以后来就加了个preg_match。此问题解决办法很简单,在ereg前加个过滤提示信息符号即可:把ereg()变成@ereg()。这样屏蔽了提示信息,但根本问题还是没有解决,php在5.2版本以前ereg都使用正常,在5.3以后,就要用preg_match来代替ereg。所以就需要变成这样,原来:

    ereg("^[0-9]*$",$page)

    变成:

    preg_match("/^[0-9]*$/",$page)

    特别提醒:posix与perl的很明显的表达区别就是是否加斜杠,所以与ereg相比,后者在正则的前后分别增加了两个”/”符号,不能缺少。
    Tips:此问题在php5.2之前版本不会出现。


    *********************************************************************

    在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()函数。
      解决方法:将不支持的函数修改为支持的函数即可。
      
      例如:
      Deprecated: Function eregi() is deprecated in D:wwwoscommercecatalogincludesclasseslanguage.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:wampwwwincludesfunctionsgeneral.php on line 61
      那么,将61行的
      $string = ereg_replace(' +', ' ', trim($string));
      改为:
      $string = preg_replace('{ +}', ' ', trim($string));
      
      如此类推,其它类似的错误也可以按照上面两个函数的语法来做修改。


    *********************************************************************

    Function ereg() is deprecated Error 错误对策

    错误:
    Deprecated: Function ereg() is deprecated in ……

    解决方法一:
    退回去用php5.2。(众人皆赞道:果是好法子!)

    解决方法二:
    继续用php5.3,但是修改devel/devel.modul的460行:
    if ($errno & (E_ALL ^ E_NOTICE)) {
    改为
    if ($errno & (E_ALL & ~E_NOTICE & ~E_DEPRECATED)) {
    把丫deprecated错误给忽略掉。(众人皆又赞道:果……果……果是好法子!)

    解决方法三:
    动程序鸟,把ereg换成preg_match,ereg_replace也需得换成preg_replace。只得注意的是
    ereg(’^[0-9]‘    需修改成   preg_match(’/^[0-9]/‘
    无敌//必须加,哈哈。(众人皆俯首赞道:王道也!)

    ereg_replace是php5.3中废弃的标签,不推进使用了。解决方法很简单,就是将dedeconfig.php文件的第二行替换成

    define(’DEDEADMIN’, preg_replace(”/[/\\]{1,}/”, ‘/’, dirname(__FILE__) ) );这样就不会报错了。遇到同样问题的朋友们不妨试一试。
  • 相关阅读:
    httpcontext in asp.net unit test
    initialize or clean up your unittest within .net unit test
    Load a script file in sencha, supports both asynchronous and synchronous approaches
    classes system in sencha touch
    ASP.NET MVC got 405 error on HTTP DELETE request
    how to run demo city bars using sencha architect
    sencha touch mvc
    sencha touch json store
    sencha touch jsonp
    51Nod 1344:走格子(贪心)
  • 原文地址:https://www.cnblogs.com/moqiang02/p/4061339.html
Copyright © 2011-2022 走看看