php5.3兼容之前php代码的一些改动
来源:互联网 发布:2016最新网络红歌神曲 编辑:程序博客网 时间:2024/06/17 15:43
最近的php版本好像已经到了5.3吧,有不少东西都出现了变化,从5.3开始,为了更好的向未来版本的php(版本6)过渡,将未来不再支持的函数标记成了deprecated。在代码中使用这些函数,将在页面中显示警告信息。
变更:
配置文件迁移
PHP 5.3 开始,配置文件 php.ini 中的一些配置将会在 PHP 执行时显示过时警告,这些配置将在 PHP6中不再存在,相关功能也将关闭。
1. define_syslog_variables
2. register_globals
3. register_long_arrays
4. safe_mode
5. magic_quotes_gpc
6. magic_quotes_runtime
7. magic_quotes_sybase
函数迁移
涉及到的主要的函数迁移如下:
删除函数 define_syslog_variables 引用
* 删除对函数 define_syslog_variables 的引用
* 将变量 $LOG_ERR, $LOG_USER 等用常量 LOG_USER, LOG_USER, … 替代
ereg, eregi 函数用 preg_match 函数替代
* 这几个函数的函数声明
int ereg ( string $pattern , string $string [, array &$regs ] )
int eregi ( string $pattern , string $string [, array &$regs ] )
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags [, int $offset ]]] )
* 虽然三者的第一个参数都是字符串,表示一个正则表达式。但是 preg_match 用的是 PCRE(Perl 兼容的正则表达式语法):正则表达式的两端用一个符号做边界,如 “/pattern/” 或者 “#pattern#”
* eregi 是乎略大小写的匹配,转换为 preg_match,第一个参数,用PCRE的参数来乎略大小写,如:”/pattern/i” 或者 “#pattern#i”
* 两者的第三个参数返回的匹配的数据结构不同。ereg 的第三个参数在调用结束后,返回的是一个字符串数组,分别为完整匹配字串和各个子匹配字串。preg_match 返回的是二维数组,相当于 ereg 的字串数组中的字串在 preg_match 是一个数组,分别保存匹配值以及匹配位置。
* 如果要进行多次匹配,PHP 提供了 preg_match_all 函数,其第三个参数的返回值则是一个三维数组;
ereg_replace, eregi_replace 函数用 preg_replace 函数或者 str_replace 函数来替代
* 和前面的 ereg 替换为 preg_match 类似,第一个参数要进行转换,头尾增加一个符号,如:”/pattern/” 或者 “#pattern#”, …
* eregi_replace 到 preg_replace 的替换,在第一个参数的后面增加正则表达式参数。如:”/pattern/i” 或者 “#pattern#i”, …
* 如果 ereg_replace 的第一个参数不是正则表达式,可以用 str_replace 直接来替换。
split, spliti 函数用 explode 或则 preg_split 函数替代
* split 切分字符串,如果无须用到正则表达式,使用 explode 替换是最好不过,速度最快
* 对于使用正则表达式切分字串,则使用 preg_split 函数替代。替代过程和 ereg/ereg_replace 类似,只是在第一个正则表达式参数中做文章,将 split 的正则表达式前后加上一个 PCRE 的分隔符号。
mysql_db_query 函数用 mysql_select_db 和 mysql_query 函数替代
* mysql_db_query 在未来版本不再支持
* 将其转换为两次调用,分别是用 mysql_select_db 选择数据库,用 mysql_query 来执行 SQL 查询
mysql_escape_string 函数用 mysql_real_escape_string 函数替代
* mysql_escape_string 未来版本不再支持
* 使用 mysql_real_escape_string 替代
session_register 函数,session_unregister,session_is_registered 函数用 $_SESSION 全局变量替代
* 这三个 session 相关函数未来不再支持
* 其功能相当于直接操作全局数组 $_SESSION。可以直接向数组中赋值或者执行相应的 unset 即可实现相关功能
- php5.3兼容之前php代码的一些改动
- php5.3改动
- cocos2d的一些改动
- hustoj的一些改动
- 写在学习php之前的一些话
- php5.3和之前的版本函数 差异总结
- JDK1.8的一些改动
- iOS 9的一些改动
- PHP5的异常处理机制[3]--PHP5之前的错误处理之trigger_error()
- PHP5的异常处理机制[3]--PHP5之前的错误处理--返回Error flag(错误标记)
- 兼容的无限级菜单代码 php
- 一些PHP中之前没见到过的知识点收集
- 一些之前东西(2D关卡的练习代码摘要)
- WAMPSERVER增加多版本的PHP(PHP5.3,PHP5.4,PHP5.5)支持。
- 在WAMPSERVER下增加多版本的PHP(PHP5.3,PHP5.4,PHP5.5)支持
- 在WAMPSERVER下增加多版本的PHP(PHP5.3,PHP5.4,PHP5.5)支持。
- 在WAMPSERVER下增加多版本的PHP(PHP5.3,PHP5.4,PHP5.5)支持。
- 在WAMPSERVER下增加多版本的PHP(PHP5.3,PHP5.4,PHP5.5)支持。
- vaadin 在eclipse中开发时热部署
- 关于OGRE配置CEGUI系统出现的问题
- 多线程同步 - Array.SyncRoot 属性
- 告诉你一个真实的美国
- Java sort 源码解析 Object part
- php5.3兼容之前php代码的一些改动
- Qt的右键菜单及位置捕捉问题
- SQL Server Management Studio连接服务器时指定端口号
- ecshop 蜘蛛爬行记录的实现
- Oracle 9i ORA-04062 timestamp of package SYS DBMS_SNAPSHOT_UTL has been changed ORA-06512 at SYS DBMS_SNAPSHOT
- C常量某条件下可修改
- Knight Moves hdu1372 bfs
- svn
- 日子过的好快啊。。。