• 技术文章 >后端开发 >php教程

    PHP5.3废弃函数 顶替记

    2016-06-13 11:03:20原创347
    PHP5.3废弃函数 替代记

    ?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()
    ????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 的分隔符号。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:PHP菜鸟需要掌握的知识 下一篇:PHP中的_FILE,CLASS等戏法变量
    Web大前端开发直播班

    相关文章推荐

    • 100道常见PHP面试题(附解析),增强你的知识储备!• 深入浅析PHP文件包含漏洞• PHP4.1.0在Windows下的Apache模块方式安装_PHP教程• PHP教程.应用实例3_PHP教程• 如何编译PHP源代码介绍ZendEncode的安装方法我今天刚调试成功,不敢独享,拿来献宝_PHP教程
    1/1

    PHP中文网