`

PHP5.3废弃函数 替代记

php 
阅读更多

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

分享到:
评论

相关推荐

    php5.3 废弃函数小结

    下面是对PHP 5.3废弃函数的详细总结: 1. `ereg()`:这个函数是早期的正则表达式匹配函数,它已经被`preg_match()`所取代。在PHP 5.3中,使用`ereg()`将发出一个警告。要替换`ereg()`,可以使用`preg_match()`,但...

    php53 php5.3

    5. **废除不安全的函数**:为了提高安全性,PHP 5.3废弃了一些被认为是不安全的函数,如`ereg`系列的正则表达式函数,推荐使用`preg`系列的函数。 6. **错误处理**:PHP 5.3开始区分了错误和异常,引入了`Error...

    PHP5.3与5.5废弃与过期函数整理汇总

    ### PHP5.3废弃与过期的函数: 1. **call_user_method()和call_user_method_array()**: 这两个函数分别用于调用对象的用户方法,但已经不再被推荐使用。它们被`call_user_func()`和`call_user_func_array()`替代...

    php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错

    总的来说,当从旧版PHP升级到5.3或更高版本时,开发者需要注意废弃函数的替换,以及遵循新的语法规范。这些改动不仅有助于消除错误提示,还能提升代码的兼容性和性能。对于大型项目,建议定期进行代码审计,确保所有...

    邮件发送smtp类ereg等函数替换版

    "邮件发送smtp类ereg等函数替换版"这个项目显然是为了应对这一问题,提供了使用新函数或方法来替代旧函数的解决方案,以确保在PHP 5.3及以上版本中能正常发送邮件。 首先,我们来看看`ereg`函数。`ereg`是正则...

    解决php5.5不兼容问题

    在描述中提到的"ecshop_2.7.3"是一个基于PHP的开源电子商务平台,它可能在设计时主要针对PHP5.3及以下版本进行了优化。随着PHP版本的升级,特别是到了PHP5.5,一些旧的函数和特性可能会被废弃或改变,导致原有代码...

    php运行时动态创建函数的方法

    自PHP 5.3起,`Closure`类引入了对闭包对象的支持,提供了一种更灵活的方式创建匿名函数。以下是一个使用`Closure`的例子: ```php if (count($_POST) > 0) { $prepped = function ($a) { return trim($_POST...

    php goto加密解密

    PHP中的`goto`语句始于PHP 5.3版本,其语法结构为 `goto label;`。`label`是程序员定义的一个标识符,用于标记跳转的目标位置。`goto`可以打破程序的常规流程,使得代码可以从一个地方跳转到另一个地方。例如: `...

    PHP mysql_result()函数使用方法

    PHP中mysql_result()函数是用于获取MySQL结果集中特定行的单个字段值的函数。在旧版本的PHP中,这个函数...随着PHP 5.3及以后版本的发展,官方推荐使用mysqli和PDO来替代mysql_*系列函数,以确保应用的安全性和性能。

    详解PHP文件的自动加载(autoloading)

    在PHP 5.3之前,推荐使用魔术函数__autoload()来实现自动加载。__autoload()函数会在尚未被定义的类首次被使用时自动调用。开发者可以在这个函数中指定如何加载类文件。然而,__autoload()有一个很大的限制:它只能...

    php中instanceof 与 is_a()区别分析

    然而,随着PHP的发展,is_a()函数在某些版本中被废弃了,比如PHP 5.3版本之后,官方推荐使用instanceof运算符来替代is_a()函数。但是到了PHP 5.3.0之后,is_a()函数又重新被PHP官方支持和使用。这意味着,在使用PHP ...

    php读取EXCEL文件 php excelreader读取excel文件

    `split`在PHP 5.3以后被标记为废弃,而`explode`是它的替代品。 2. **废弃警告:`Assigning the return value of new by reference is deprecated`** 这是因为在PHP 5.3及更高版本中,`=&`符号不再被支持。应移除...

    mysql_escape_string()函数用法分析

    然而,需要注意的是,`mysql_escape_string()` 在 PHP 5.3 版本之后已经被废弃,现在推荐使用更安全的 `mysqli_real_escape_string()` 或者使用预处理语句(如 PDO)。 当用户输入的数据包含特殊字符,如单引号 `'`...

    PHP实现获取文件mime类型多种方法解析

    然而,`mime_content_type`在PHP 5.3及以上版本已被废弃,因为它依赖于Apache的`mod_mime_magic`模块,这可能导致在某些环境下不可用。因此,官方推荐使用`fileinfo`扩展来替代。 2. **使用`Fileinfo`方法(官方...

Global site tag (gtag.js) - Google Analytics