strlen计算字符串的长度
$str = 'hello world';
echo '该字符串的长度为:',strlen($str),'<br />';
echo '该字符串的长度为:',mb_strlen($str),'<hr />';
mb_strcut、mb_substr()截取中文
$str = '截取中文';
echo '
mb_substr按字截取:
',mb_substr($str,0,3,'utf-8'),'<br />';
echo '
mb_strcut按字节截取:
',mb_strcut($str,0,3
,'utf-8'
),'<br />';
替换字符串
echo '简单的替换:',str_replace('hello','hi',$str),'<br />';
echo '替换敏感字眼:',str_replace('政府','和谐','政府民生'),'<br />';
$str = '政府 傻× 吊毛' ;
$ar = array('政府','傻×','吊毛');
echo '数组替换:',str_replace($ar,'和谐',$str),'<hr />';
strpos查看字符串中是否有该子字符串及该字符串出现的位置
$str = 'my Name is xushaolong';
echo strpos($str,'my')===false?'没有该子字符串<br />':'有此子字符串<br />';
echo 'is的位置为:',strpos($str,'is'),'<br />';
echo '忽视大小写N的位置:',stripos($str,'name'),'<br />';
echo 'n最后一次出现的位置:',strrpos($str,'n'),'<hr />';
strrev反转字符串
echo '$str反转后为:',strrev($str),'<hr />';
strrchr的用法
$str = 'mysql.class.php';
echo '截取最后一次.出现的位置开始',strrchr($str, '.'),'<hr />';
字符串的综合利用,截取文件名的后缀
echo '<span style=\'color:red\'>字符串的综合利用,截取文件名的后缀</span><br/>';
$str = 'mysql.class.php';
echo '利用str_replace()函数直接截取------------->',str_replace('mysql.class.','',$str),'<br />';
echo '利用substr()函数直接截取------------->',substr($str,-3),'<br />';
echo 'strrpos和substr相结合--------------------->',substr($str,strrpos($str,'.')+1),'<br />';
echo 'strrev和strstr相结合--------------------->',strrev(strstr(strrev($str),'.',true)),'<hr />';
str_split将字符串转换为数组
$str = '1234567';
$arr = str_split($str,3);//此时$str字符串已经以3个单位被分割成数组了
print_r($arr);
echo '<hr />';
将数组转化为字符串
echo implode(',',$arr),'<hr />';
将字符串转化为数组
$str = 'mysql.class.php';
print_r(explode('.',$str));
echo '<hr />';
trim去除两端空白符或去除指定字符
$str = ' ....abcdef,,,, ';
$str = trim($str);
echo '去掉$str两边的空格:',$str,'<br/>';
$str = ltrim($str,'.');
echo '去掉$str左边的点号:',$str,'<br/>';
$str = rtrim($str,',');
echo '去掉$str右边的逗号:',$str,'<hr/>';
chunk_split,把字符拆成小段并补充指定的字符
$str = 'abcdefghigklmn';
echo '测试下chunk_split的用法:',chunk_split($str,2,','),'<hr />';
综合练习,1234567,得到1,234,567
$str = '1234567';
echo '<span style=\'color:red\'>综合练习,1234567,得到1,234,567</span><br/>';
echo '第一种方法,结合chunk_split、strrev、trim:------------------>',strrev(trim(chunk_split(strrev($str),3,','),',')),'<br />';
echo '第二种方法,利用数组转化------------------------------------>',strrev(implode(str_split(strrev($str),3),',')),'<br />';
echo '第三种方法,调用系统函数number_format------------------------------------>',number_format($str),'<hr />';
转义字符
$str = 'we\'re here';
echo '转义前:',$str,'<br />';
echo '转义后:',addslashes($str),'<br />';
echo '反转义后:',stripslashes($str),'<hr />';
把html实体转化为字符
$str = '<span style=\'color:red\'>讲html实体转化为字符</span>';
echo '转义前:',$str,'<br />';
echo '转义后:',htmlspecialchars($str),'<br />';
echo '反转义后:',htmlspecialchars_decode($str),'<hr />';
字符串的大小写转换
echo '小写转换为大写:',strtoupper('abcdefg'),'<br />';
echo '大写转换为小写:',strtolower(strtoupper('abcdefg')),'<br />';
echo '把首字母转换为大写:',ucfirst('abcdefg'),'<br />';//ucfirst把首字母转换为大写
字符串比较,如果 str1 小于 str2,返回负数;如果 str1 大于 str2,返回正数;二者相等则返回 0。
$str1 = 'abcd';
$str2 = 'abc';
echo strcmp($str1,$str2);
常见的字符串面试题
echo '<h1 style=\'font_weight:900\'>常见的字符串面试题</h1><br />';
echo '第一题 把第一个字符打印出来<br />';
$str = 'abcdefg';
echo '1、使用substr与strlen结合---------------------------->',substr($str,0,-(strlen($str)-1)),'<br />';
echo '2、使用strstr、chunk_split结合----------------------->',strstr(chunk_split($str,1,','),',',true),'<br />';
echo '3、使用数组------------------------------------------>',current(str_split($str)),'<br />';
echo '4、用字符串索引打印------------------------------->',$str[0],'<br />';
echo '5、直接用substr-------------------------------------->',substr($str,0,1),'<br />';
echo '第二题 如何实现字符串反转 [不允许用系统函数]<br />';
echo '先拆分成数组,在用数组函数反转,再转回字符串:',implode('',array_reverse(str_split($str))),'<br />';
检测常量是否定义
define('ROOT',true)
echo defined('ROOT')?'已定义':exit('access declined');