博客列表 >字符串函数总结 2018/04/25 19:25

字符串函数总结 2018/04/25 19:25

箭里飘香
箭里飘香原创
2018年04月25日 19:25:33624浏览

1.字符串长度计算

<?php 

$siteName = 'PHP课程';
//获取内部字符编码集
$encoding =   mb_internal_encoding();
echo '内部字符编码集: ',$encoding,'<br>';//结果为:UTF-8

//1.strlen($str):获取字节表示的字符串长度
//utf8模式下,一个中文字符用三个字节表示
echo strlen($siteName),'<br>';//返回值:9

//2.mb_strlen($str, $encoding) :获取字符数表示的长度
echo mb_strlen($siteName, 'GB2312'),'<br>';//返回值:6
//省略第二个参数,会使用系统默认的字符编码集,当前是utf-8
echo mb_strlen($siteName),'<br>';  //返回值:5

运行实例 »

点击 "运行实例" 按钮查看在线实例

2.字符串比较运算

<?php 
echo '<p>字符串比较运算</p><hr color="green">';

$str1 = 'php中文网';
$str2 = 'PHP中文网';

//1.strcmp($str1, $str2):相等返回:0,大于返回:1,小于返回:-1
echo strcmp($str1, $str2), '<br>'; 

//2.strncmp($str, $str2, $n):比较开头指定长度是否相等,相等返回:0,大于返回:1,小于返回:-1
echo strncmp($str1, $str2, 3) , '<br>';

//3.strcasecmp($str1, $str2):不区分大小写的字符串比较,相等返回0,大于返回>0,否则返回<0
echo strcasecmp($str1, $str2),'<br>'; 

//4.strncasecmp($str1, $str2):不区分大小写比较开头指定长度是否相等
echo strncasecmp($str1, $str2,3), '<br>'; 

//5.strspn($str, $mark, $start, $length):
//计算字符串中全部字符都存在于指定字符集合中的第一段子串的长度
//$str1:要比较的字符串, $mark:类似于集合,返回匹配的数量
echo strspn('15705519989', '1234567890'),'<br>';  //返回11
//可以指定开始比较的位置与长度
echo strspn('15705519989', '1234567890', 4, 4),'<br>';//返回4
//只比较$str中的第一个子串,后面的全部忽略掉,返回11
echo strspn('15705519989 18955123344 111abc', '1234567890'),'<br>';
//返回3,因为第一个字串中只有前三个是属于数字集合中的数据
echo strspn('157php 18955123344 111abc', '1234567890'),'<br>';

//例如手机号必须是纯数字字符串,要求用户必须输入的是纯数字的字符串
$phone = '13899886767';
// $phone = '1389988php6767';
$mark = '0123456789';
//分析,如果正确匹配,那么strspn()必返回11,因为手机号是11,与strlen($phone)正好相等
echo strlen($phone)==strspn($phone, $mark) ? '全数字' : '必须全为数字';
//等价于: strspn(substr($subject, $start, $length), $mask)

//6.strcspn()与strspn()功能正好相反

运行实例 »

点击 "运行实例" 按钮查看在线实例

3.字符串与数组间的转换

实例

<?php 
echo '<p>字符串与数组间的转换</p><hr color="green">';
/**
 * 1.str_split($str,$length=1),按字符数量,将字符串分割为数组,默认为1
 * 2.explode($delimiter,$str,$num):按分隔符,将字符串分割为数组,可指定数组元素数量
 * 3.implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔
 */
echo '<pre>';
$str = 'html,css,jquery,php,mysql,thinkphp';
echo '<p>原始字符串:'.$str.'</p>';
//1.str_split($str,$length=1)按字符数量,将字符串分割为数组,默认为1
// print_r(str_split($str)); //默认一个字符转为数组中的一个元素
// print_r(str_split($str,5)); //5个一组进行转换

//2.explode($delimiter,$str,$num):按分隔符,将字符串分割为数组,可指定数组元素数量
print_r(explode(',',$str)); //用','号进行分割字符串
print_r(explode(',',$str,5)); //指定数组必须是5个元素,最后一个元素保存全部剩余数据

//3.implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔
$arr2 = explode(',', $str);
echo implode(' ', $arr2), '<br>'; //用空格分隔
echo implode(',',$arr2), '<br>'; //用,分隔
echo implode('--',$arr2), '<br>'; //用--分隔

运行实例 »

点击 "运行实例" 按钮查看在线实例

4.html与字符串之间的转换

实例

<?php 
echo '<p>:html与字符串之间的转换</p><hr color="green">';
$str = <<< 'NOWDOC'
<h4>PHP课程介绍</h4>
<ol>
	<li>'PHP'基本语法&案例</li>
	<li>"PHP"的数据库操作</li>
	<li>\PHP面向对象编程</li>
</ol>
NOWDOC;
echo '原始字符串:'.$str.'<hr color="red">';
//1.1.addslashes($str),对单引号,双引号,转义符进行转义
$str1 = addslashes($str);
echo $str1, '<hr>';

//2.stripslashes($str):功能与addslashes()相反,去掉字符串中的转义反斜线字符
$str2 = stripslashes($str1);
echo  $str2,'<hr>';

//3.htmlspecialchars($str,FLAG):将特殊字符转换为 HTML 实体
//&->&"=>"'->&apos/' < < > >
$str3 = htmlspecialchars($str2); //必须查看源码才能看到结果
echo  $str3,'<hr>';

//4.htmlspecialchars_decode():将特殊的 HTML 实体转换回普通字符,与上一个是互逆操作
$str4 = htmlspecialchars_decode($str3); 
echo  $str4,'<hr>';

//5.strip_tags($str,$allow)从字符串中去除HTML和PHP标记
$str5 = strip_tags($str4); //输出的是去掉所有标签的纯文本
$str5 = strip_tags($str4,'<h4>'); //保留<h4>标签,其它的删除
echo  $str5,'<hr>';

运行实例 »

点击 "运行实例" 按钮查看在线实例

5.删除或填充指定内容

<?php 
echo '<p>:删除或填充指定内容</p><hr color="green">';
$str = '  php中文网   '; //左边二个空格,右边三个空格
$str1 = 'www.php.cn';
echo $str,'<br>';
echo strlen($str),'<br>';
echo '<hr color="red">';
//1.ltrim($str,$mask):从左边删除空格或指定字符
echo ltrim($str),'<br>';
echo strlen(ltrim($str)),'<br>';
echo $str1,'<br>';
echo strlen($str1),'<br>';

echo ltrim($str1, 'www.'),'<br>';
echo strlen(ltrim($str1, 'www.')),'<br>';

//2.rtrim($str,$mask):从右边删除空格或指定字符
$str = '  php中文网   ';
echo rtrim($str),'<br>';
echo strlen(rtrim($str)),'<br>';

//3.trim($str,$mask):从左右边删除空格或指定字符
$str = '  php中文网   ';
echo trim($str),'<br>';
echo strlen(trim($str)),'<br>';

echo '<hr>';
//4.str_pad($str,$length,$mark,CONST):使用特定字符将字符串填充到指定长度
$str1 = 'www.php.cn';
echo strlen($str1),'<br>';
echo str_pad($str1, 20, '*', STR_PAD_RIGHT),'<br>'; //默认向右填充
echo str_pad($str1, 20, '*', STR_PAD_LEFT), '<br>'; //向左填充
echo str_pad($str1, 20, '*', STR_PAD_BOTH), '<br>'; //二边填充

echo '<hr>';
//5.chunk_split($str, $length,[$end]):将字符串按大小切成小块,可指定分割符
$str1 = '12345678901234567890';
echo chunk_split($str1, 7, ','),'<br>';
echo chunk_split($str1, 7, '<br>');

运行实例 »

点击 "运行实例" 按钮查看在线实例

6.查找与替换

<?php 
echo '<p>字符串函数(六):查找与替换</p><hr color="green">';
$str = 'www.php.cn';
//1.strpos($str,$needle, $offset)查找字符串首次出现的位置
echo strpos($str, 'p'),'<br>'; //默认从头开始查找
echo strpos($str, 'p', 5),'<br>'; //从索引5开始查找

//2.strstr($str1, $str2),如果$str2是$str1的子串,返回子串,返回否则false
echo strstr($str, 'php'),'<br>';  //返回子串及后面部分
echo strstr($str, 'php', true),'<br>'; //参数true,会返回子串前面部分

echo '<hr>';
//3.str_replace($str1, $str2, $str3, $num):子串替换,
echo str_replace('www','http://www',$str), '<br>';

echo '<hr>';
//4.substr_replace($str1,$str2,$str3,$start, $length):替换字符串的子串
//在$str中,从第5个索引位置起的2个字符,用'pppph'进行替换
echo substr_replace($str,'pppph', 5, 2);

运行实例 »

点击 "运行实例" 按钮查看在线实例

qq_pic_merged_1524655478497.jpgqq_pic_merged_1524655413822.jpg

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议