一 代码
function.php
<?phpfunction chinesesubstr($str,$start,$len){$strlen=$start+$len;for($i=0;$i<$strlen;$i++){if(ord(substr($str,$i,1))>0xa0){$tmpstr.=substr($str,$i,2);$i++;}else$tmpstr.=substr($str,$i,1);}return $tmpstr;}?>
index.php
<linkrel="stylesheet"type="text/css"href="style.css"><tablewidth="160"border="0"align="center"cellpadding="0"cellspacing="0"><tr><tdwidth="165"height="32"><imgsrc="images/tell_top.gif"width="165"height="32"border="0"></td></tr><tr><tdheight="52"background="images/tell_center.gif"><?phpinclude_once("function.php");$news="中小学因雾霾放假!";$i=1;do{?><tablewidth="148"height="25"border="0"align="center"cellpadding="0"cellspacing="0"><tr><tdwidth="17"height="20"><imgsrc="images/mark_0.gif"width="10"height="10"></td><tdwidth="333"><?phpecho chinesesubstr($news,0,16);if(strlen($news)>16){echo " ...";}?></td></tr><tr><tdheight="5"></td><tdheight="5"background="images/back_point_write.gif"></td></tr></table><?php$i++;}while($i<=5);?></td></tr><tr><tdwidth="165"height="12"><imgsrc="images/tell_bottom.gif"width="165"height="12"></td></tr></table>
二 运行效果

三 代码说明
1、为了保持整个页面合理布局,经常需要对一些较长的字符进行部分输出,但由于汉字占有两个字符,如果截取位置不当就可能导致截取的字符串尾出现乱码。
2、本代码实现功能:创建一个自定义函数,用于实现屏蔽中文乱码的输出,将该函数封装在一个function.php中,然后应用include_once语句引用这个文件,再通过echo语句输出新闻主题信息,截取前16个 字符,并应用自定义函数屏蔽中文乱码。
PHP中文截取无乱码
本文介绍了一种使用PHP自定义函数实现中文字符串截取的方法,避免了因截断汉字造成乱码的问题。该方法适用于需要显示部分中文内容而又不希望破坏文字完整性的场景。
4367

被折叠的 条评论
为什么被折叠?



