CodeIgniter 提供了一套兼容性函数,让你可以使用非原生的 PHP 函数,但是只有在更高的版本或者依赖于某个扩展插件。
作为定制化实现,这些函数也有一定的依赖性,但是如果你的安装的 PHP 没有提供原生函数,它们还是很有用的。
注意: 大部分和 通用函数
很像, 只要依赖性满足,兼容性函数一直可用。
这套函数提供一个 PHP 标准“哈希密码扩展” 的 “反向移植” ,仅在 PHP 5.5 版本之后可用。
- PHP 5.3.7
CRYPT_BLOWFISH
支持crypt()
PASSWORD_BCRYPT
PASSWORD_DEFAULT
- 参数 字符串 $hash: 哈希密码
- 返回:哈希过的密码信息
- 返回类型:数组
更多信息,可以参考 PHP password_get_info() 使用手册
- 参数 字符串 $password: 文本密码
- 参数 整数 $algo: Hashing 算法
- 参数 数组 $options: Hashing 参数
- 返回 哈希过的密码,失败时返回 FALSE
- 返回类型 字符串
更多信息,可用参考 PHP password_get_info() 使用手册
。
注意: 除非你提供自己的(有效的)salt,这个函数可用进一步的提供依赖于可用的 CSPRNG 源。满足底下的每个条件:
- ``mcrypt_create_iv()`` with ``MCRYPT_DEV_URANDOM``
- ``openssl_random_pseudo_bytes()``
- /dev/arandom
- /dev/urandom
- 参数 字符串 $hash: 哈希密码
- 参数 整数 $algo: 哈希算法
- 参数 数组 $options: 哈希参数
- 返回 TRUE 如果哈希符合给定的算法和参数,返回 TRUE,否则返回 FALSE
- 返回类型 bool
更多信息,可以参考 PHP password_needs_rehash() 使用手册
。
- 参数 字符串 $password: 纯文本密码
- 参数 字符串 $hash: 哈希密码
- 返回 TRUE 如果密码和哈希匹配返回 TRUE,否则返回 FALSE。
- 返回类型 bool
更多信息,可以参考 PHP password_verify() 使用手册
这个兼容性层包含了 hash_equals()
和 hash_pbkdf2()
函数的公钥,除此之外还分别要求 PHP 5.6 和/或 5.5。
- 无
- 参数 字符串 $known_string: 已知字符串
- 参数 字符串 $user_string: 用户提供的字符串
- 返回 如果字符串匹配返回 TRUE,否则返回 FALSE
- 返回类型 字符串
更多信息,可以参考 PHP hash_equals() 使用手册
。
- 参数 字符串 $algo: 哈希算法
- 参数 字符串 $password: 密码
- 参数 字符串 $salt: 哈希 salt
- 参数 整数 $iterations: 迭代过程中执行的次数
- 参数 整数 $length: 输出字符串的长度
- 参数 bool $raw_output: 是否返回原始二级制数据
- 返回 成功返回加密过的值,失败返回 FALSE
- 返回类型 字符串
更多信息,可以参考 PHP hash_pbkdf2() 使用手册
。
这套兼容性函数提供为多字节字符串扩展提供有限支持。因为有限的替代方法,只有几个函数可用。
注意: 当一个字符参数忽略,可以使用 $config['charset']
。
- iconv 扩展
注意: 这个依赖性是可选的,这个函数总是被声明。如果 iconv 不可用,他们将会回退到 non-mbstring 版本。
注意: 当提供字符设置时,必须通过 iconv 和它认识的格式来支持。
注意: 你再检查 mbstring 扩展时,可以使用 MB_ENABLED
常量。
- 参数 字符串 $str: 输入字符串
- 参数 字符串 $encoding: 字符集
- 返回 输入字符串的字符数,失败返回 FALSE
- 返回类型 字符串
更多信息,可以参考 PHP mb_strlen() 使用手册。
- 参数 字符串 $haystack: 需要搜索的字符串
- 参数 字符串 $needle: 需要搜索部分字符串
- 参数 整数 $offset: 搜索偏移量
- 参数 字符串 $encoding: 字符集
- 返回 $needle 字符所在的位置,失败返回 FALSE
- 返回类型 混合
更多信息,可以参考 PHP mb_strpos() 使用手册。
- 参数 字符串 $str: 输入字符串
- 参数 整数 $start: 第一个字符的位置
- 参数 整数 $length: 字符的最大数量
- 参数 字符串 $encoding: 字符集
- 返回 返回从 $start 开始,长度为 $lengthPortion 的字符串,失败返回 FALSE。
- 返回类型 字符串
更多信息,可以参考 PHP mb_substr() 使用手册。
这套兼容性函数提供一些标准的 PHP 函数支持,不过需要新版本的 PHP。
- 无
- 参数 数组 $array: 取结果的源数组
- 参数 混合 $column_key: 取结果的列的 key
- 参数 混合 $index_key: 返回值的 key
- 返回 从多维数组中取回某列数组
- 返回类型 数组
更多信息,可以参考 PHP array_column() 使用手册。
- 参数 数组 $array1: 将要替换的数组
- 参数 array ...: 需要提前内容的数组
- 返回 修改后的数组
- 返回类型 数组
更多信息,可以参考 PHP array_replace() 使用手册。
- 参数 数组 $array1: 将要替换内容的数组
- 参数 array ...: 将要提取内容的数组
- 返回 修改后的数组
- 返回类型 数组
更多信息,可以参考 PHP array_replace_recursive() 使用手册。
注意: 只有 PHP 原生函数可以检测无穷递归。除非你的 PHP 版本是 5.3+,否则你要消息使用。
- 参数 数组 $data: 16 进制的数据
- 返回 参数的二级制表示
- 返回类型 字符串
更多信息,可以参考 PHP hex2bin() 使用手册。
- 参数 字符串 $str: 输入字符串
- 返回 8bit-encoded 字符串
- 返回类型 字符串
更多信息,可以参考 PHP quoted_printable_encode() 使用手册。