php内置了98个字符串函数(除了基于正则表达式的函数,正则表达式在此不在讨论范围),能够处理字符串中能遇到的每一个方面内容,本文对常用字符串函数进行简单的小结,主要包含以下8部分:1.确定字符串长度、2.比较字符串、3.分割连接反转、4.html与字符串相互转化、5.填充和剔除字符串、6.统计字符和单词个数、7.查找替换截取、8.大小写处理。
- addcslashes — 为字符串里面的部分字符添加反斜线转义字符
- addslashes — 用指定的方式对字符串里面的字符进行转义
- bin2hex — 将二进制数据转换成十六进制表示
- chop — rtrim() 的别名函数
- chr — 返回一个字符的ASCII码
- chunk_split — 按一定的字符长度将字符串分割成小块
- convert_cyr_string — 将斯拉夫语字符转换为别的字符
- convert_uudecode — 解密一个字符串
- convert_uuencode — 加密一个字符串
- count_chars — 返回一个字符串里面的字符使用信息
- crc32 — 计算一个字符串的crc32多项式
- crypt — 单向散列加密函数
- echo — 用以显示一些内容
- explode — 将一个字符串用分割符转变为一数组形式
- fprintf — 按照要求对数据进行返回,并直接写入文档流
- get_html_translation_table — 返回可以转换的HTML实体
- hebrev — 将Hebrew编码的字符串转换为可视的文本
- hebrevc — 将Hebrew编码的字符串转换为可视的文本
- html_entity_decode — htmlentities ()函数的反函数,将HTML实体转换为字符
- htmlentities — 将字符串中一些字符转换为HTML实体
- htmlspecialchars_decode —htmlspecialchars()函数的反函数,将HTML实体转换为字符
- htmlspecialchars — 将字符串中一些字符转换为HTML实体
- implode — 将数组用特定的分割符转变为字符串
- join — 将数组转变为字符串,implode()函数的别名
- levenshtein — 计算两个词的差别大小
- localeconv — 获取数字相关的格式定义
- ltrim — 去除字符串左侧的空白或者指定的字符
- md5_file — 将一个文件进行MD5算法加密
- md5 — 将一个字符串进行MD5算法加密
- metaphone — 判断一个字符串的发音规则
- money_format — 按照参数对数字进行格式化的输出
- nl_langinfo — 查询语言和本地信息
- nl2br — 将字符串中的换行符“\n”替换成“<br/>”
- number_format — 按照参数对数字进行格式化的输出
- ord — 将一个ASCII码转换为一个字符
- parse_str — 把一定格式的字符串转变为变量和值
- print — 用以输出一个单独的值
- printf — 按照要求对数据进行显示
- quoted_printable_decode — 将一个字符串加密为一个8位的二进制字符串
- quotemeta — 对若干个特定字符进行转义
- rtrim — 去除字符串右侧的空白或者指定的字符
- setlocale — 设置关于数字,日期等等的本地格式
- sha1_file — 将一个文件进行SHA1算法加密
- sha1 — 将一个字符串进行SHA1算法加密
- similar_text — 比较两个字符串,返回系统认为的相似字符个数
- soundex — 判断一个字符串的发音规则
- sprintf — 按照要求对数据进行返回,但是不输出
- sscanf — 可以对字符串进行格式化
- str_ireplace — 像str_replace()函数一样匹配和替换字符串,但是不区分大小写
- str_pad — 对字符串进行两侧的补白
- str_repeat — 对字符串进行重复组合
- str_replace — 匹配和替换字符串
- str_rot13 — 将字符串进行ROT13加密处理
- str_shuffle — 对一个字符串里面的字符进行随机排序
- str_split — 将一个字符串按照字符间距分割为一个数组
- str_word_count — 获取字符串里面的英文单词信息
- strcasecmp — 对字符串进行大小比较,不区分大小写
- strchr — 通过比较返回一个字符串的部分strstr()函数的别名
- strcmp — 对字符串进行大小比较
- strcoll – 根据本地设置对字符串进行大小比较
- strcspn — 返回字符连续非匹配长度的值
- strip_tags — 去除一个字符串里面的HTML和PHP代码
- stripcslashes — 反转义addcslashes()函数转义处理过的字符串
- stripos — 查找并返回首个匹配项的位置,匹配不区分大小写
- stripslashes — 反转义addslashes()函数转义处理过的字符串
- stristr — 通过比较返回一个字符串的部分,比较时不区分大小写
- strlen — 获取一个字符串的编码长度
- strnatcasecmp — 使用自然排序法对字符串进行大小比较,不区分大小写
- strnatcmp — 使用自然排序法对字符串进行大小比较
- strncasecmp — 对字符串的前N个字符进行大小比较,不区分大小写
- strncmp — 对字符串的前N个字符进行大小比较
- strpbrk — 通过比较返回一个字符串的部分
- strpos — 查找并返回首个匹配项的位置
- strrchr — 通过从后往前比较返回一个字符串的部分
- strrev — 将字符串里面的所有字母反向排列
- strripos — 从后往前查找并返回首个匹配项的位置,匹配不区分大小写
- strrpos – 从后往前查找并返回首个匹配项的位置
- strspn — 匹配并返回字符连续出现长度的值
- strstr — 通过比较返回一个字符串的部分
- strtok — 用指定的若干个字符来分割字符串
- strtolower — 将字符串转变为小写
- strtoupper –将字符串转变为大写
- strtr — 对字符串比较替换
- substr_compare — 对字符串进行截取后的比较
- substr_count — 计算字符串中某字符段的出现次数
- substr_replace — 对字符串中的部分字符进行替换
- substr — 对字符串进行截取
- trim — 去除字符串两边的空白或者指定的字符
- ucfirst — 将所给字符串的第一个字母转换为大写
- ucwords — 将所给字符串的每一个英文单词的第一个字母变成大写
- vfprintf — 按照要求对数据进行返回,并直接写入文档流
- vprintf — 按照要求对数据进行显示
- vsprintf — 按照要求对数据进行返回,但是不输出
- wordwrap — 按照一定的字符长度分割字符串
确定字符串长度
strlen函数和mb_strlen函数,后者需要开启mbstring扩展
<?php
header('content-type:text/html;charset=utf-8');
$str = 'abcdef';
echo strlen($str); // 6
echo "<br/>";
$str = ' ab cd ';
echo mb_strlen($str); // 7
echo "<br/>";
//strlen 是计算字符串"字节"长度
//mb_strlen,是根据编码,计算字符串的"字符"个数.
$str='中华人民共和国';
echo "字节长度是".strlen($str);//在 UTF-8编码下,一个汉字占3个字节 在gbk中一个汉字占2个字节
echo "<br/>";
echo "字符长度是".mb_strlen($str,'utf-8');
?>
比较字符串
strcmp函数、strcasecmp函数、strspn函数、strcspn函数
<?php
$pwd="userpwd";
$pwd2="Userpwd";
//区分大小写
if (strcmp($pwd, $pwd2) !=0) {
echo "password do not match";
} else{
echo "password match";
}
$email1="www.baidu.com";
$email2="WWW.BAIDU.COM";
//不区分大小写
if (!strcasecmp($email1, $email2)) {
echo "ok",'<br>';
}
//求两个字符串相同的部分
$password="1233345";
if (strspn($password,"1234567890")==strlen($password)) {
echo "the password connot consist solely of numbers";
}
//
$password="a12345";
if (strcspn($password, "1234567890")==0) {
echo "the password connot consist solely of numbers";
}
?>
分割连接反转
str_split函数、split函数、explode函数和implode函数
<?php
header('content-type:text/html;charset=utf-8');
$str = "Hello Friend";
$arr1 = str_split($str);
print_r($arr1);
$arr2 = str_split($str, 3);
print_r($arr2);
$str = 'abc,中国,美国,日本';
// explode,是根据指定的分割符,把字符串拆成数组.
$arr = explode(',',$str);
print_r($arr);
// implode,是根据指定的连接符,把数组再拼接成字符串
$arr = explode(',',$str);
echo implode('~',$arr),'<br />';
// 你可以只传一个数组做参数,不指定连接符,
// 这样,将把数组单元直接拼接起来
echo implode($arr);
?>
html与字符串相互转化
htmlspecialchars函数、strip_tags函数、get_html_translation_table函数和addcslashes函数和htmlentities函数
<?php
$str = "hello ', world";
echo $str,'<br />';
echo $str= addslashes($str),'<br />';
echo stripslashes($str),'<br />';
$str = '<ab>';
echo $str,'<br />';
echo htmlspecialchars($str);
echo "</br>";
$str="Email <a href='admin@qq.com'>example@qq.com</a>";
echo strip_tags($str);
?>
填充和剔除字符串
trim函数、ltrim函数、rtrim函数、str_pad函数、chunk_split函数
<?php
$str = '12345678';
echo chunk_split($str,3,',');
echo "<br>";
$text = "\t\tThese are a few words :) ... ";
echo trim($text);
echo "<br>";
echo ltrim($text,'\t'),'<br>';
echo rtrim($text,'\r'),'<br>';
echo str_pad('apple', 6)."is good.";
?>
统计字符和单词个数
count_chars函数和str_word_count
<?php
$data = "Two Ts and one F.";
foreach (count_chars($data, 1) as $i => $val) {
echo "There were $val instance(s) of \"" , chr($i) , "\" in the string.\n";
}
echo "<hr>";
$str = "Hello fri3nd, you're looking good today!";
print_r(str_word_count($str, 1));
?>
查找替换截取
strpos函数、str_replace函数、substr_replace函数、substr函数、strstr函数
<?php
$substr = "index.html";
$log = <<< logfile
192.168.1.11:/www/htdocs/index.html:[2016/08/10:21:58:27]
192.168.1.11:/www/htdocs/index.html:[2016/08/18:01:51:37]
192.168.1.11:/www/htdocs/index.html:[2016/08/20:11:48:27]
logfile;
$pos =strpos($log, $substr);
$pos2=strpos($log,"\n",$pos);
$pos=$pos+strlen($substr)+1;
$timestamp=substr($log,$pos,$pos2-$pos);
echo "The file $substr was first accessed on:$timestamp";
echo "<br>";
$author="lester@example.com";
$author=str_replace("@", "at", $author);
echo "connect the author of this article at $author";
echo "<br>";
echo ltrim(strstr($author,"@"), "@");
?>
大小写处理
strtolower函数、strtoupper函数、ucfirst函数、ucwords函数
<?php
$url="http://WWWW.BAIDU.COM";
echo strtolower($url),'<br>';
$str="hello world";
echo strtoupper($str),'<br>';
$str="php is the most popular language ";
echo ucfirst($str),'<br>';
echo ucwords($str);
?>