字符串操作
1 字符串整理
可以使用trim()函数去除字符串开始位置和结束位置的空格,并把结果字符串返回。默认情况下,去除:\n 、 \r 、\t、\xOb、\0和空格。也可以传入第二个参数提供要过滤的特殊字符。
ltrim()只从字符串开始处去除,rtrim()只从字符串结束处去除。
2 使用HTML标记格式化
nl2br()函数将会把字符串中的换行符替换为<br>
标记。
3 转义字符串以便存储:addslashes()和stripslashes()
当字符串中含有一些有问题的字符时,将其插入到数据库是有可能出问题的。这些有问题的字符就是引号、反斜杠(\)和NULL字符。
这时候我们就需要对有问题的字符进行转义即添加一个反斜杠。
$str = "\你好";
echo $str;//输出\你好
echo "<hr>";
$str = addslashes($str);
echo $str;//输出\\你好
echo "<hr>";
$str = stripslashes($str);
echo $str;//输出\你好
显然stripslashes()函数就是去除添加的转义字符。
4 使用explode()、implode()和join()
举个例子:
$str = "bken@163.com";
$str = explode("@", $str);
echo $str[0];//输出bken
$str = implode("@", $str);
echo $str;//输出bken@163.com
join()函数和implode()用法用途一样。
5 使用substr()
举个例子:
$str = "bken@163.com";
echo substr($str, 2);//输出en@163.com
echo substr($str, 2, 5);//输出en@
echo substr($str, 2, -4);//输出en@163
6 字符串的比较
strcmp()函数接收两个参数,并返回比较的结果。如果两个字符串相等,返回0;如果第一个字符串大于第二个字符串,返回正数;如果第一个字符串小于第二个字符串,返回负数。
strcasecmp()除了不区分大小写,其他和strcmp()一样。
strnatcasecmp()不区分大小写,并按照人们的自然习惯对字符进行排序。举个例子,strcmp()会认为2大于12,因为在字典中2在12前面,而strnatcasecmp()相反。
7 字符串长度strlen()
strlen()函数将返回字符串的长度。
8 在字符串中查找字符串
举个例子:
$str = "\你好";
if (strstr($str, "你")) {
echo "找到!";
}
else
echo "没有";
上面的输出为:找到!
strstr()、strchr()函数从字符串的前面找要找的子字符串,如果找到便返回true。
stristr()函数除了不区分大小写,其他和strstr()一样。
strrchr()几乎和strstr()一样,但是它返回的是最后出现的那个字字符串。
9 查找子字符串的位置
strpos()会返回第一次出现子字符串的位置,而strrpos()会返回最后出现的子字符串的位置。
同时可以传入第三个参数,指定开始查找的位置。
10 替换子字符串
举个例子:
$str = "你好";
$str = str_replace('你', '我', $str);
echo $str;
以上代码会输出:我好
还可以指定替换字符串中的子字符串:
$str = substr_replace($str, 'X', -1);
这将把$str的最后一个字符换成“X”。