php5.3x不再支持ereg和eregi,解决办法

自己目前在从事PHP程序员,网站方向的.之前遇到不少PHP的函数被弃用了,主要是PHP版本问题(PHP5.3.x),为了更好的向 PHP 的未来版本(PHP6) 过渡,将未来不再支持的函数标记为 DEPRECATED.在代码中使用这些函数,将毫不留情的在页面中显示警告信息:"使用了过时的函数…",这些配置将在 PHP6中不再存在,相关功能也将关闭

下面列举了部分被弃用的函数:

call_user_method()(使用 call_user_func() 替代)

call_user_method_array() (使用 call_user_func_array() 替代)

define_syslog_variables()

dl()

ereg() (使用 preg_match() 替代)

ereg_replace() (使用 preg_replace() 替代)

eregi() (使用 preg_match() 配合 ‘i’ 修正符替代)

eregi_replace() (使用 preg_replace() 配合 ‘i’ 修正符替代)

set_magic_quotes_runtime() 以及它的别名函数 magic_quotes_runtime()

[color=olive]session_register() (使用 $_SESSION 超全部变量替代)

session_unregister() (使用 $_SESSION 超全部变量替代)

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() (使用 mysql_real_escape_string() 替代)

废弃以字符串传递区域设置名称. 使用 LC_* 系列常量替代.

mktime() 的 is_dst 参数. 使用新的时区处理函数替代.

涉及到的主要的函数迁移如下:

删除函数 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 ] ) intpreg_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 直接来替换。

spliti 函数用 explode 或则 preg_split 函数替代split 切分字符串,如果无须用到正则表达式,使用 explode 替换是最好不过,速度最快.对于使用正则表达式切分字串,则使用 preg_split 函数替代。替代过程和 ereg/ereg_replace 类似,只是在第一个正则表达式参数中做文章,将 split 的正则表达式前后加上一个 PCRE 的分隔符号。

相关文章

相关视频

mysql ereg_php5.3x不再支持ereg和eregi,解决方法相关推荐

  1. xcode 4.2 不再支持 Window-Based Application 的解决办法(转载)

    xcode 4.2 不再支持 Window-Based Application 的解决办法:      1.创建空项目 Empty Application.(在Xcode4.2下创建的这个空项目不再有 ...

  2. mysql不支持union_MySQL中Union子句不支持order by的解决方法

    本文实例讲述了MySQL中Union子句不支持order by的解决方法.分享给大家供大家参考,具体如下: 我对DB知之甚少,这问题只在MySQL遇到,不知道别的DBMS是不是也如此. 问题是这样的, ...

  3. ac9560不支持承载_Win10不支持承载网络的解决方法

    Win10不支持承载网络的解决方法 作者:管理员时间:2015-08-20 19:33:23 Win10造成不支持承载网络的原因一般都是使用驱动精灵等软件更新了无线网卡驱动,因为win10系统有些无线 ...

  4. Mysql Field * doesn't have a default value解决方法

    Mysql Field * doesn't have a default value解决方法 MySQL 5中,出现错误提示: Field 'id' doesn't have a default va ...

  5. Windows2003服务器不支持FLV视频的解决方法

    Windows2003服务器不支持FLV视频的解决方法 2007年10月19日 星期五 10:43 A.M. 原因:WIN2003加强了IIS6的MIME验证,一切未注册扩展文件格式统统显示404错误 ...

  6. Java 链接MySQL数据库时报的connect和denied错解决方法

    2019独角兽企业重金招聘Python工程师标准>>> 一.not allowed to connect to this MySQL server错误 错误分析:可能是由于MySQL ...

  7. Windows IIS注册asp 此操作系统版本不支持此选项 错误解决方法

    Windows IIS注册asp 此操作系统版本不支持此选项 错误解决方法 参考文章: (1)Windows IIS注册asp 此操作系统版本不支持此选项 错误解决方法 (2)https://www. ...

  8. mysql source导入报错ERROR 1366的解决方法

    mysql source导入报错ERROR 1366的解决方法 参考文章: (1)mysql source导入报错ERROR 1366的解决方法 (2)https://www.cnblogs.com/ ...

  9. Linux下MySql出现#1036 – Table ‘ ‘ is read only 错误解决方法

    Linux下MySql出现#1036 – Table ' ' is read only 错误解决方法 参考文章: (1)Linux下MySql出现#1036 – Table ' ' is read o ...

  10. [Bat]UNC路径不支持的2种解决方法

    [Bat]UNC路径不支持的2种解决方法 参考文章: (1)[Bat]UNC路径不支持的2种解决方法 (2)https://www.cnblogs.com/masonlu/p/10276546.htm ...

最新文章

  1. pyqt5实战之幻彩大蛇(贪吃蛇)-1
  2. mysql innodb引擎--范围查询优化
  3. 上海2014计算机职称考试理论题,2014年上海市高校计算机一级考试8套理论题含答案...
  4. 面试官系统精讲Java源码及大厂真题 - 02 String、Long 源码解析和面试题
  5. 【kafka】生产者速度测试
  6. focal loss dice loss源码_扒源码:sharding loss in Pytorch
  7. 《信号与系统》解读 前言:经典教材的选择
  8. 华为android手机怎么解锁,华为手机如何解锁 华为手机解锁方法【图文详解】
  9. HTML测试报告模板
  10. android drawtext文字大小,Android 使用View绘制文字(DrawText)技术总结
  11. oracle写求余函数,Oracle取余函数mod
  12. 中关村买手机上当案例
  13. C语言解题:破损的键盘
  14. 举个栗子!Tableau 技巧(184):查看固定或自定义时间段的数据
  15. 【Chrome-Charset】Chrome设置字符集
  16. 数据治理之主数据管理MDM
  17. 请告诉我IT行业缺少怎样的人
  18. fedora nginx php,在Fedora 24服务器和工作站上使用MariaDB和PHP / PHP-FPM设置Nginx
  19. FTP文件使用迅雷下载
  20. js操作表格数据,DOM实现数据动态增删查改

热门文章

  1. 用Excel绘制曲线图
  2. Linux 下的桌面指针时钟
  3. 自适应布局-使用css3函数clac()
  4. hdu5064 dp
  5. 教育云助武汉大学实现校园信息化
  6. Pytorch环境搭建
  7. 面试常见的逻辑推理题
  8. 网络时钟系统(子母钟系统)技术应用方案
  9. 医院时钟系统(网络授时设备)设计方案
  10. 图文讲解:Win8必知快捷键汇总_-Chaz-_新浪博客