php 截取字符串

只适合英文的截取字符串,一个字节一个长度,一个中文字符长度是3。

<meta charset="UTF-8"> 
<?php
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
echo "原字符串:$str <br>";
//按各种方式进行截取
$str1 = substr($str,5);
echo "从第5个字符开始取至最后:$str1 <br>";
$str2 = substr($str,9,4);
echo "从第9个字符开始取4个字符:$str2 <br>";
$str3 = substr($str,-5);
echo "取倒数5个字符:$str3";
$str4 = substr($str,-8,4);
echo "从倒数第8个字符开始向后取4个字符:$str4 <br>";
$str5 = substr($str,-8,-2);
echo "从倒数第8个字符开始取到倒数第2个字符为止:$str5 <br>";
?>

效果图:
php 截取字符串
 

如果是中文,或中英混合,使用 mb_substr() 来截取。推荐使用。

<meta charset="UTF-8"> 
<?php 
//必须要加字符编码,否则截取会出问题
//mb_substr(),是不管中英文,一个字符一个长度,而不是一个字节一个长度
//例如:AB阅谁是四个字符,所以长度是4
$str ="阅谁问君诵,水落清香浮。";
echo mb_strlen($str,'utf-8')>10?mb_substr($str,0,8, 'utf-8').'..':$str;
echo '<br>';
$str2 = "AB阅谁问君诵,水落清香浮。CDEFGHIJKLMNOPQRSTUVWXYZ";
echo mb_strlen($str2,'utf-8')>18?mb_substr($str2,0,16, 'utf-8').'..':$str2;
?>

效果图:
php 截取字符串
 

相关推荐