龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php截取中文字符

时间:2014-07-22 14:49来源: 作者: 点击:
分享到:
php中用substr()截取中文字符时会出现乱码。因为中文字符占两个字节,字节数和字符数不再是一一对应关系,所以出现截取不完整的情况。
php中用substr()截取中文字符时会出现乱码。因为中文字符占两个字节,字节数和字符数不再是一一对应关系,所以出现截取不完整的情况。
<?php 
/**
* Hsubstr是一个截取中文字符串类
* @author pan <panxuzhengxuxin@gmail.com>
* @package
* @since 1.0
*/
class Hsubstr 
{
	
	
	function __construct($str,$start,$len)
	{
		$this->str=$str;
		$this->start=$start;
		$this->len=$len;
		
	}
	/**
	 * 截取的中文字符串,返回截到的字符串
	 * @return $temstr截取的中文字符串 
	 */
	public function getStr()
	{
		//$endlen=$this->start+$this->len;
		for ($i=0; $i <$this->len ; $i++) 
		{ 

			if(ord(substr($this->str,$i,1))>0xa0)
			{
				$temstr.=substr($this->str, $i,2);
				$i++;
			}
			else
			{
				$temstr.=substr($this->str, $i,1);
			}
		}
		return $temstr;
		
	} 
}
 ?>
精彩图集

赞助商链接