首页 > php开发, 技术学习 > php5.3和之前的版本函数 差异 总结之路

php5.3和之前的版本函数 差异 总结之路

1:Function ereg() is deprecated Error 错误对策

�0�2�0�2 Deprecated: Function ereg() is deprecated in ……

�0�2�0�2 解决方法一: 退回去用php5.2。

�0�2�0�2 解决方法二:继续用php5.3,但是修改devel/devel.modul的460行: if ($errno
&
(E_ALL ^ E_NOTICE)) { 改为 if ($errno & (E_ALL & ~E_NOTICE
&
~E_DEPRECATED)) { 把deprecated错误给忽略掉)

�0�2�0�2
解决方法三:把ereg换成preg_match,ereg_replace也需得换成preg_replace。

�0�2�0�2�0�2 只得注意的是 ereg(’^[0-9]‘ 需修改成 preg_match(’/^[0-9]/‘

2: PHP5.3后(set_magic_quotes_runtime(),ereg() )已经关闭

运行php程序出现以下错误
Deprecated: Function set_magic_quotes_runtime()
is
deprecated

导致这个提示的原因是在PHP5.3后此特性(set_magic_quotes_runtime())已经关闭。

而且在PHP6中已经完全移除此特性。

你可以注释或者删除掉出错的行,或者是在set_magic_quotes_runtime()前面加@符号。

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之前版本不会出现。

Function ereg() is deprecated in drupal-6.15\includes\file.inc on
line
904
open the file.inc in a good text editor other than notepad, go to
the
line number 904 to see the following line. Then comment the line and in
the next
line type the replaced code. this will solve the instalation issues
and also
most of other issues related to the same issue.

Change

elseif ($depth >= $min_depth && ereg($mask, $file)) {

to
elseif ($depth >= $min_depth && mb_ereg($mask,
$file))
{

mb_ereg fortunatly is not deprecated

1:Function ereg() is deprecated Error 错误对策 �0�2�0�2 Dep […]

  1. 还没有评论
评论提交中, 请稍候...

留言

(Spamcheck Enabled)

Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks