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 = 0; $i < 8; $i++) { for($j = 0; $j < 4; $j++) { $result .="\r".mb_substr($str, $j*8+$i, 1, 'gbk') ."\r"."|"; $result = trim($result, '|') ."<br/>"; } } echo $result ;