PHP共有3个截取函数substr、mb_substr、mb_strcut.
这三个函数都用来截取字符串,所不同的是:substr是最简单的截取,无法适应中文,会乱码;mb_substr是按字来切分字符串,而mb_strcut是按字节来切分字符串,截取中文都不会产生半个字符的现象。
这三个函数的前三个参数完全一致,即:
Function: mb_substr( $str, $start, $length, $encoding )
$str,需要截断的字符串
$start,截断开始处
$length,长度(注意,这个跟mb_strimwidth不同,1就代表一个中文字符)
$encoding,编码,utf-8或gbk。mb_substr和mb_strcut的第四个参数
详细介绍下用mb_substr把一段字符串用“左起竖排”的古文格式输出。即:
少 | 一 | 未 | 阶
年 | 寸 | 觉 | 前
易 | 光 | 池 | 梧
老 | 阴 | 塘 | 叶
学 | 不 | 春 | 已
难 | 可 | 草 | 秋
成 | 轻 | 梦 | 声
, | 。 | , | 。
$str = "少年易老学难成,一寸光阴不可轻。未觉池塘春草梦,阶前梧叶已秋声。";
$result = '';
for($i &#61; 0; $i <8; $i&#43;&#43;) {
for($j &#61; 0; $j <4; $j&#43;&#43;) {
$result .&#61;"\r".mb_substr($str, $j*8&#43;$i, 1, &#39;gbk&#39;) ."\r"."|";
$result &#61; trim($result, &#39;|&#39;) ."
";
}
}
echo $result ;