substr()函数中文版

substr(State of Qatar函数普通话版普通的substr(卡塔尔(قطر‎函数能够获取字符串的钦赐长度子字符串,但蒙受汉语时或然会在新字符串末尾发生乱码,上面这么些函数将超过$len长度的字符串转换来以“…”结尾,并且去除了乱码。
用法:$new = getsubstring($old,20卡塔尔(قطر‎; function getsubstring($str,$len卡塔尔(قطر‎ {
for($i = 0;$i $end;$i++State of Qatar { if ($i =0 AND $i $end卡塔尔(قطر‎ {
if(ord(substr($str,$i,1State of Qatar卡塔尔(قطر‎ 0xa1卡塔尔 $result_str.=substr($str,$i,2); else
$result_str.=substr($str,$i,1); } if(ord(substr($str,$i,1)) 0xa1) $i++;
} if(strlen($str)=$end) return $result_str; else return
$result_str.”…”; }

小说页面的 description 是利用
substr
函数来截取220字符的,可是末了贰个汉字总是乱码,何况截抽取来的尺寸也不科学。

通过神奇的 Google 找到办法,大概是因为
substr(string,start,lengthState of Qatar,会将汉字以字符的花样截断,而引致乱码

减轻方案:

应用 PHP 扩大库中的 mb_substr 方法。

注意

1.确定保障您的Windows/system32下有php_mbstring.dll那些文件,未有就从你Php安装目录extensions里拷入Windows/system32里面。
2.在windows目录下找到php.ini展开编辑,寻觅mbstring.dll,找到
;extension=php_mbstring.dll把后边的;号去掉,那样mb_substr函数就能够生效了

艺术定义:

string mb_substr ( string str, int start [, int length [, string
encoding]] )

注意:在使用 mb_substr()/mb_strcut
最后要参与多二个参数,以设定字符串的编码,

例如:

 代码如下

echo mb_substr(‘原来会出现乱码的汉字!’, 0, 7, ‘utf-8′卡塔尔国;

再如:

 代码如下

$description =
mb_substr(strip_tags($post->post_content),0,220,’utf-8′);

mb_strcut函数

mb_strcut函数功效也足以截取字符串长度,上边实例具体看看区别在哪:

 

 代码如下

<?php
$str = ‘那样一来笔者的字符串就不会有乱码^_^’;

echo “mb_substr:” . mb_substr($str, 0, 7, ‘utf-8’);
//结果:那样一来小编的字
echo “<br>”;

echo “mb_strcut:” . mb_strcut($str, 0, 6, ‘utf-8’);
//结果:这样
?>

从地点的事例可以看到,mb_substr是按字来切分字符,而mb_strcut是按字节来切分字符,但是都不会发出半个字符的场合。

substr(卡塔尔函数普通话版
普通的substr(卡塔尔(قطر‎函数能够博得字符串的钦命长度子字符串,但遭逢中文时只怕会在新字符串末尾发生乱码,上面这一个函数将超过$len长度的字符串调换到以“…”结尾,而且去除了乱码。
用法:$new = getsubstring($old,20);

 代码如下

function getsubstring($str,$len)
{
for($i = 0;$i <$len;$i++)
{
   if ($i >=0 AND $i <$len)
   {
    if(ord(substr($str,$i,1)) > 0xa1)
     $result_str.=substr($str,$i,2);
    else
     $result_str.=substr($str,$i,1);
   }
   if(ord(substr($str,$i,1)) > 0xa1)
    $i++;
}
if(strlen($str)<=$len)
   return $result_str;
else
   return $result_str.”…”;
}

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图