PHP自定义函数实现防止中文出现乱码
一 代码
function.php
<?php
function 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">
<?php
include_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">
<?php
echo 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个 字符,并应用自定义函数屏蔽中文乱码。