解决php deprecated 的问题

Deprecated :意思是“不推荐”

php 5.3 从一方面来讲,可以说在07年计划PHP6的中的一个pre版本,增加了很多功能,统一了很多语法,使PHP变得更加强大与简洁。

说到统计架构规划,PHP当然会对一些别名,重复功能function进行归类整理,并把一些不用的正式在php 5.3以后删除掉.故不建议在新项目继续使用.

PHP 5.3 有两个deprecated,

E_DEPRECATED and E_USER_DEPRECATED

以下是在旧的项目中会在php 5.3以后碰到的问题

?define_syslog_variables
?register_globals
?register_long_arrays
?safe_mode
?magic_quotes_gpc
?magic_quotes_runtime
?magic_quotes_sybase
?在PHP.ini 注释用#已经不再建议使用.
Deprecated functions:

?call_user_method() 可以用 call_user_func() 替代
?call_user_method_array() 可以用 call_user_func_array() 替代define_syslog_variables()
?dl() 反对在使用DL加载扩展,php5.3 以后应用php.ini配制
?ereg() 可以用 preg_match() 替代
? ereg_replace() 可以用 preg_replace() 替代
?eregi() 用 preg_match() i 参数替代
?eregi_replace() 用 preg_replace() i 参数替代
?set_magic_quotes_runtime() 用 magic_quotes_runtime() 替代
?session_register() session_unregister() session_is_registered()
?以上三个统一用 $_SESSION 替代
?set_socket_blocking() 用 stream_set_blocking() 替代
?split() 用 preg_split() 替代
?spliti() 用 preg_split() 模式 ‘i’ 替代
?sql_regcase()
?mysql_db_query() 用 mysql_select_db() mysql_query() 替代mysql_escape_string() 用 use mysql_real_escape_string() 替代
?关于时区处理,统一用Timezone对像
Deprecated features:

?直接返加new 实例不再建议使用. PHP 6 将不再支持
?Call-time pass-by-reference 参数现在不再建议使用 PHP 6 将不再支持
?用 {} 访问字符串顺序不再建议使用. 统一用 [] 代替. PHP 6 将不再支持

当然如果项目紧急,又要在php 5.3 使用以上方法,可以用下面的方法去做

在php.ini 增加

cd /home/jiania/lnamp/php530/etc/php.ini

php_flag allow_call_time_pass_reference On
php_value error_reporting “E_ALL & ~E_NOTICE & ~E_DEPRECATED”

时间: 2024-10-22 08:49:35

解决php deprecated 的问题的相关文章

解决Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future:

php5个版本,5.2.5.3.5.4.5.5,怕跟不上时代,新的服务器直接上5.5,但是程序出现如下错误:Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in,看意思就很明了,说mysql_connect这个模块将在未来弃用,请你使用mysqli或者PDO来替代. 解决方法1: 禁止PHP报错 d

ECShop后台站点地图关于 Deprecated: Assigning the return value of new by reference is deprecated的错误的解决办法

今天对后台系统进行一些简单的操作,当点击  系统设置---站点地图  时发现提示: Deprecated: Assigning the return value of new by reference is deprecated 的错误,如下图: 起先以为是代码的问题,可是一想到这个模板是官网的默认模板,对sitemap.php文件进行查找后未能发现问题.后来将错误内容从网上一查找,原来是由于从php5.3开始后,废除了php中的"=&"符号,所以删除&符号即可. 删除

PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法

这篇文章主要介绍了PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法,是在进行PHP数据库程序开发中常会遇到的错误,需要的朋友可以参考下 本文实例讲述了PHP提示 Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法,在PHP程序开发中常会遇到这类问题.分享给大家供大家参考,具体的解决方法如下: 将下面代码改为mysqli

Android系统编译错误Note: Some input files use or override a deprecated API. 解决办法

进入系统framework层修改了下MediaPlayer.java的源码,就添加了个方法,结果重新编译系统报下面错误: .................. Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. 6 warnings 再进入MediaPlayer.java把修改的复原,结果编译就通过,关键是我需要那个方法... 最

解决Deprecated: preg_replace(): The /e modifier is deprecated, use

使用php5.5运行ecshop的时候出现如下错误Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in \ecshop\includes\cls_template.php on line 300 解决方法如下 打开ecshop的目录找到includes\cls_template.php 到第300行 把 return preg_replace("/{([^\}

php提示Call-time pass-by-reference has been deprecated in的解决方法

修改php.ini就可以了. 1. 在PHP.ini中搜索关键字 : allow_call_time_pass_reference 没有的自行建立.2. 将 Off 改成 On ,Web Server重起就OK了~ allow_call_time_pass_reference = Off 变成 allow_call_time_pass_reference = On php提示Call-time pass-by-reference has been deprecated in的解决方法,布布扣,b

显示Deprecated: Assigning the return value of new by reference is deprecated in解决办法

很多朋友的php程序当php的版本升级到5.3以后,会出现”Deprecated: Assigning the return value of new by reference is deprecated in“ 显示出来.这是因为5.3以后,不能使用”=&”符号,可以直接用”=”就可以了. 所以当出现这个问题后有两种解决方法: 1. 把php的版本降级到5.3以下,但后退的不是明智的选择. 2. 对程序中”=&”符号全部用”=” 代替.

ECSHOP如何解决DEPRECATED: PREG_REPLACE()报错

类似这样的报错: Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in D:\wyh\ecshop\includes\cls_template.php on line 300 1.错误原因:preg_replace() 函数中用到的修饰符 /e 在 PHP5.5.x 中已经被弃用了.如果你的PHP版本恰好是PHP5.5.X,那你的ECSHOP肯定就会报类似这样

PHP:错误 Deprecated: Function split() is deprecated in ... 解决办法

PHP:错误 Deprecated: Function split() is deprecated in ... 解决办法 PHP5.3 split() 不建议使用的原因:PHP 5.3.0 之后的regex, 希望使用PCRE 的规格, POSIX Regex 都不建议使用了(统一Regex, 避免规格太多?). 所以下述是不建议使用的Function (POSIX), 与建议替换成的Function (PCRE) 列表, 详可见: PHP: Differences from POSIX re