在线文档教程
Codeigniter 3

兼容性函数 | Compatibility Functions

Compatibility Functions

CodeIgniter提供了一组兼容性功能,使您可以使用PHP本身可用的功能,但只能使用更高版本或取决于特定扩展名的功能。

作为自定义实现,这些函数自身也会有一些依赖项,但如果PHP安装程序本身不提供这些依赖项,它们仍然很有用。

注意

与常见功能非常相似,兼容性功能始终可用,只要满足其相关性即可。

  • 密码散列

密码散列

这组兼容性函数提供了PHP的标准密码散列扩展的“后端”,否则这些扩展只能在PHP 5.5之后才可用。

依赖

  • PHP 5.3.7

常量

  • PASSWORD_BCRYPT

功能参考

password_get_info($hash)

参数:$ hash(字符串) - 密码哈希
返回:有关散列密码的信息
返回类型:排列

  • $ hash字符串) - 密码哈希

返回:有关散列密码的信息

Return type: array

有关更多信息,请参阅[PHP手册的密码\ _get \ _info()](https://php.net/password_get_info)。

password_hash($password, $algo[, $options = array()])

参数:$ password(string) - 纯文本密码$ algo(int) - 散列算法$ options(array) - 散列选项
返回:散列密码或FALSE失败
返回类型:

  • $密码字符串) - 纯文本密码

返回:散列密码或失败时为FALSE

Return type: string

有关更多信息,请参阅[PHP手册的密码\ _hash()](https://php.net/password_hash)。

注意

除非你提供你自己的(和有效的)salt,否则这个函数进一步依赖于可用的CSPRNG源。以下每一项都可以满足以下要求: - mcrypt_create_iv()使用MCRYPT_DEV_URANDOM- openssl_random_pseudo_bytes()- / dev / arandom - / dev / urandom

password_needs_rehash()

参数:$ hash(字符串) - 密码散列$ algo(int) - 散列算法$ options(数组) - 散列选项
返回:如果哈希应该重新映射以匹配给定算法和选项,则为TRUE;否则为FALSE
返回类型:布尔

  • $ hash字符串) - 密码哈希

返回:如果哈希应该重新映射以匹配给定的算法和选项,则返回TRUE;否则返回FALSE

Return type: bool

有关更多信息,请参阅[PHP手册中的密码\ _needs \ _rehash()](https://php.net/password_needs_rehash)。

password_verify($password, $hash)

参数:$ password(字符串) - 纯文本密码$ hash(字符串) - 密码哈希
返回:如果密码与散列相匹配则为TRUE,否则为FALSE
返回类型:布尔

  • $密码字符串) - 纯文本密码

返回:如果密码与哈希匹配,则返回TRUE;否则返回FALSE

Return type: bool

有关更多信息,请参阅[PHP手册的密码\ _verify()](https://php.net/password_verify)。

Hash (Message Digest)

这个兼容层包含hash_equals()hash_pbkdf2()函数的backports ,它们分别需要PHP 5.6和/或PHP 5.5。

依赖

  • 没有

功能参考

hash_equals($known_string, $user_string)

参数:$ known_string(string) - 已知字符串$ user_string(字符串) - 用户提供的字符串
返回:如果字符串匹配则为TRUE,否则为FALSE
返回类型:

  • $ known_string字符串) - 已知字符串

返回:如果字符串匹配则返回TRUE,否则返回FALSE

Return type: string

For more information, please refer to the [PHP manual for hash\_equals()](https://php.net/hash_equals).

hash_pbkdf2($algo, $password, $salt, $iterations[, $length = 0[, $raw_output = FALSE]])

参数:$ algo(string) - 哈希算法$ password(string) - 密码$ salt(字符串) - 哈希salt $ iterations(int) - 派生期间执行的迭代次数$ length(int) - 输出字符串长度$ raw_output(bool) - 是否返回原始二进制数据
返回:密码派生密钥或FALSE失败
返回类型:

  • $ algo字符串) - 哈希算法

Returns: Password-derived key or FALSE on failure

Return type: string

有关更多信息,请参阅[PHP手册中的散列\ _pbkdf2()](https://php.net/hash_pbkdf2)。

Multibyte String

这组兼容性函数对PHP的多字节字符串扩展提供了有限的支持。由于替代解决方案有限,只有少数功能可用。

注意

当字符集参数被忽略时,$config['charset']将被使用。

依赖

重要

这种依赖是可选的,并且这些函数将一直被声明。如果iconv不可用,它们将回退到它们的非mbstring版本。

重要

在提供字符集的情况下,它必须受iconv支持并且采用它可识别的格式。

注意

对于您对实际的mbstring扩展名拥有依赖性检查,请使用该MB_ENABLED常量。

功能参考

mb_strlen($str[, $encoding = NULL])

参数:$ str(string) - 输入字符串$ encoding(string) - 字符集
返回:输入字符串中的字符数或失败时的FALSE
返回类型:

  • $ strstring) - 输入字符串

返回:输入字符串中的字符数或失败时的FALSE

Return type: string

有关更多信息,请参阅[PHP的mb \ _strlen()手册](https://php.net/mb_strlen)。

mb_strpos($haystack, $needle[, $offset = 0[, $encoding = NULL]])

参数:$ haystack(string) - 在$ needle(string)中搜索的字符串 - 搜索$ offset的字符串的一部分(int) - 搜索偏移量$ encoding(string) - 字符集
返回:找到$ needle的数字字符位置,如果未找到,则为FALSE
返回类型:

  • $ haystackstring) - 要搜索的字符串

返回:发现$ needle的数字字符位置,如果未找到,则返回FALSE

返回类型:混合

有关更多信息,请参阅[PHP的mb \ _strpos()手册](https://php.net/mb_strpos)。

mb_substr($str, $start[, $length = NULL[, $encoding = NULL]])

参数:$ str(string) - 输入字符串$ start(int) - 第一个字符的位置$ length(int) - 最大字符数$ encoding(string) - 字符集
返回:由$ start和$ length指定的$ str部分或失败时的FALSE部分
返回类型:

  • $ strstring) - 输入字符串

返回:由$ start指定的$ str部分,如果失败,则为$ length或FALSE

Return type: string

有关更多信息,请参阅[PHP的mb \ _substr()]手册(https://php.net/mb_substr)。

标准函数

这组兼容性函数提供了对PHP中几个标准函数的支持,否则这些函数需要更新的PHP版本。

依赖

  • 没有

功能参考

array_column(array $array, $column_key[, $index_key = NULL])

参数:$ array(array) - 从$ column_key获取结果的数组(混合) - 从$ index_key返回值的列的键(混合) - 用于返回值的键
返回:表示输入数组中单个列的值数组
返回类型:排列

  • $ arrayarray) - 从中​​获取结果的数组

返回:表示输入数组中单个列的值数组

返回类型:数组

有关更多信息,请参考[PHP手册中的array \ _column()](https://php.net/array_column)。

hex2bin($data)

参数:$ data(array) - 数据的十六进制表示
返回:给定数据的二进制表示
返回类型:

  • $ dataarray) - 数据的十六进制表示

返回:给定数据的二进制表示

Return type: string

有关更多信息,请参阅[PHP手册的hex2bin()](https://php.net/hex2bin)。