如果您希望將乙個字串限長顯示,如果該字串超過一定長數,就擷取前n個字元,後加省略號,但是在英文和漢字混合的情況下會出現如下問題:
如果有這樣乙個字串
$str="這是乙個字串";
為了擷取該串的前10個字元,使用
if(strlen($str)>10) $str=substr($str,10)."…";
那麼,echo $str的輸出應該是"這是乙個字…"
假設 $str="這是1個字串";
這個串中包含了乙個半角字元,同樣執行:
if(strlen($str)>10) $str=substr($str,10);
由於原字串$str的第10、11個字元構成了漢字「符」;
執行串分割後會將該漢字一分為二,這樣被擷取的串就會發現亂碼現象。
請問這種問題如何解決?即要使過長字串實現分割,又不能讓它發生亂碼?
複製** **如下:
<?php
function substrs($content,$length='30') }
$num%2==1 ? $content=substr($content,0,$length-4):$content=substr($content,0,$length-3);
} return $content;
} ?>
複製** **如下:
function cutstr($string, $length, $dot = ' ...')
return $strcut.$dot;
}複製** **如下:
function cuttitle($str, $len, $tail = "")else
} $result = strlen($result) > $len ? substr($result, 0, -2) . $tail : $result . $tail;
}else
return $result;
}學會了嗎?
php 擷取 ,php怎麼擷取字串
php內建了大量的字串操作函式,比如php implode,explode等等,php擷取字串,可以用substr,mb substr二個函式。phpsubstr語法substr string,start,length 引數string 即要擷取的字串 start 即要擷取的開始位置 0表示從從前往...
php的字串擷取
這個功能在php輸出頁面的時候很常用 就是把乙個字串擷取為不大於某個長度的字串。本身是很簡單的事情,但是附加了一些需求 1,字串中含有中文,也就是單位元組雙位元組混著的。2,字串中含有html 對於中文擷取,網上有現成的 可以拿來用,就像這樣 function trunk str most,retu...
PHP擷取HTML字串
擷取html字串 static function cutstr string,length,dot pre chr 1 end chr 1 string str replace array array pre.end,pre.end,pre.end,pre.end string strcut n t...