初学下面这个php substr库函数程序不算完美,但处理一般的中文(gb18030,gb2312,big5)是没有问题的。这个函数不适合utf-8编码的文字。
<ol class="dp-xml"><li class="alt"><span><span>//$str字符串 </span></span></li><li><span>//$max 最大字符数 </span></li><li class="alt"><span>function Substring($str,$max){ </span></li><li><span>$</span><span class="attribute">cnt</span><span>=</span><span class="attribute-value">0</span><span>; //实际计数 </span></li><li class="alt"><span>$</span><span class="attribute">index</span><span>=</span><span class="attribute-value">0</span><span>; //当前索引 </span></li><li><span>$</span><span class="attribute">output</span><span>=</span><span class="attribute-value">''</span><span>; //输出 </span></li><li class="alt"><span>// </span></li><li><span>while($cnt</span><span class="tag"><</span><span>$max && $index</span><span class="tag"><</span><span class="tag-name">strlen</span><span>($str)){ </span></li><li class="alt"><span>$</span><span class="attribute">output.</span><span>=$str[$index]; </span></li><li><span>//big5 </span></li><li class="alt"><span>if(ord($str[$index])</span><span class="tag">></span><span>=0x81 &&<br /> ord($str[$index])</span><span class="tag"><</span><span>=0xfe){ </span></li><li><span>if($index+1</span><span class="tag"><</span><span class="tag-name">strlen</span><span>($str)){ </span></li><li class="alt"><span>if( (ord($str[$index+1])</span><span class="tag">></span><span>=0x40 <br />&& ord($str[$index+1])</span><span class="tag"><</span><span class="tag-name">0x7e</span><span>) </span></li><li><span>|| (ord($str[$index+1])</span><span class="tag">></span><span>=0xa1 <br />&& ord($str[$index+1])</span><span class="tag"><</span><span>=0xfe) ){ </span></li><li class="alt"><span>$index++; </span></li><li><span>$</span><span class="attribute">output.</span><span>=$str[$index]; </span></li><li class="alt"><span>} </span></li><li><span>} </span></li><li class="alt"><span>} </span></li><li><span>//gb2312 </span></li><li class="alt"><span>else if(ord($str[$index])</span><span class="tag">></span><span>=0xa1<br /> && ord($str[$index])</span><span class="tag"><</span><span>=0xf7){ </span></li><li><span>$</span><span class="attribute">output.</span><span>=$str[$index]; </span></li><li class="alt"><span>if($index+1</span><span class="tag"><</span><span class="tag-name">strlen</span><span>($str)){ </span></li><li><span>if(ord($str[$index+1])</span><span class="tag">></span><span>=0xa1 <br />&& ord($str[$index+1])</span><span class="tag"><</span><span class="tag-name">0xfe</span><span>){ </span></li><li class="alt"><span>$index++; </span></li><li><span>$</span><span class="attribute">output.</span><span>=$str[$index]; </span></li><li class="alt"><span>} </span></li><li><span>} </span></li><li class="alt"><span>} </span></li><li><span>else{ </span></li><li class="alt"><span>} </span></li><li><span>$cnt++; </span></li><li class="alt"><span>$index++; </span></li><li><span>} </span></li><li class="alt"><span>return $output; </span></li><li><span>} </span></li></ol>以上代码示例就是PHP Substr库函数在截取中文字符时的具体使用方法。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号