deprecatedphp
A. 新人求教php高手,Deprecated
ereg函数是5之前用的,在5.多版本就弃用了,5点低的一些会执行但有警告,你说的php2.3我没听说过这个版本,apache2.3到是有听说,正则你用preg_grep吧!返回匹配模式的数组条目,效果一样的,关于正则的函数你到php手册,函数参考->文本处理->PCRE->PCRE函数,这里是正则的一般使用到的函数,PCRE下的POSIX REGEX你也可以看下,你用的ereg函数里面就有说明,其中就有
Note:
使用 Perl 兼容正则表达式语法的 preg_match() 函数通常是比 ereg() 更快的替代方案。
B. 求助Deprecated! 关于php的。
eregi()和其它几个ereg开头的函数在php5.3之后已经列为过时的函数,也就是在之后的版本中将会被废弃。你可以使用preg_match()代替它
C. php报错PHP Deprecated: preg_replace求大神解决
Deprecated: preg_replace();意思是不赞成正则替换,你这用正则替换的用法,不让使用,换种方法实现你的替换目的吧。
D. php5.3提示Function ereg() is deprecated Error问题解决方法
本文实例讲述了php5.3提示Function
ereg()
is
deprecated
Error问题解决方法。分享给大家供大家参考。具体实现方法如下:
一、问题:
PHP
5.3
ereg()
无法正常使用,提示“Function
ereg()
is
deprecated
Error”是因为它长ereg
函数进行了升级处理,需要像preg_match使用/
/来规则了,当然也是php5.3把ereg给废掉的节奏了。
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相比,后者在正则的前后分别增加了两个"/"符号,不能缺少。
例如:
改前:
复制代码
代码如下:function
inject_check($sql_str)
{
$sql_str
=
strtolower($sql_str);
return
eregi('fopen|post|eval|select|insert|and|or|update|delete|'|/*|*|../|./|union|into|load_file|outfile',
$sql_str);
//
进行过滤
}
二、解决方法:
找到代码所在的文件位置:
复制代码
代码如下:function
inject_check($sql_str)
{
$sql_str
=
strtolower($sql_str);
return
preg_match('/fopen|post|eval|select|insert|and|or|update|delete|'|/*|*|../|./|union|into|load_file|outfile/',
$sql_str);
//
进行过滤
}
注意:一定要加'/'开头与结束。此段参考:http://www.jb51.net/article/38857.htm
补充:此问题在php5.2之前版本不会出现。
希望本文所述对大家的PHP程序设计有所帮助。
E. 如何使php页面中不再出现NOTICE和DEPRECATED的错误提示
<?php
//文件头部设置
error_reporting(E_ALL^E_NOTICE);
?>
//或者在php.ini配置文件中修改:
error_reporting=E_ALL & ~E_NOTICE