PHP 教程 在线

2545把字符串转换为大写字母 strtr()

不同语法的例子:

<?php
// 使用三个参数
echo strtr(hello, e, '');    // 输出 hello

echo PHP_EOL;  // 换行

// 使用数组
echo strtr(hello, ['e' => '']);    // 输出 hllo
?>

2544反转字符串 strripos()

strpos, strrpos, stripos, strripos 词义解析:

pos => position(位置,返回整数)
i => ignore(忽略大小写)
r => reverse(颠倒,从后往前)
同理 strtr 之类返回字符串

2543在字符串中搜索指定字符中的任意一个 strpos()

注意的是,strpos() 的位置是按字节计算的,如中文的时候下面的例子将会输出 9:

<?php
$a = '我爱你中国';
$index = strpos($a,'中国');
echo $index;
?>

2542在字符串中搜索指定字符中的任意一个 strpos()

PHP 判断字符串中是否包含另一个字符串?

我么可以使用 strpos() 函数来判断字符串中是否包含另一个字符串:

$a = 'How are you?';

if (strpos($a, 'are') !== false) {
    echo 'true';
} else {
    echo 'false';
}

注意这里一定要使用 !== false 来做判断条件语句, strpos() 如果没有找到字符串则返回 FALSE,如果是在字符串的起始位置找到另一个字符串则返回的是 0, 其他位置则是大于 0 的整数,所以我们不能使用类似这样的代码 !strpos($a, 'are'),这样会导致误判。

2541设置地区信息(地域信息) sha1()

不推荐使用 sha1() 给密码加密。因为根据目前的计算机性能,很容易暴力破解通过 MD5、SHA1、SHA256 加密的信息。

要对安全加密,可以使用 PHP 5.5 之后有原生的密码 HASH 函数,或者使用 crypt() 函数。

<?php
/**
 * 我们想要使用默认算法散列密码
 * 当前是 BCRYPT,并会产生 60 个字符的结果。
 *
 * 请注意,随时间推移,默认算法可能会有变化,
 * 所以需要储存的空间能够超过 60 字(255字不错)
 */
echo password_hash("rasmuslerdorf", PASSWORD_DEFAULT);
?>
<?php
// 设置密码
$password = 'mypassword';

// 获取散列值,使用自动盐值
$hash = crypt($password);

echo $hash;
?>