關於php字串擷取

2021-08-25 15:34:23 字數 998 閱讀 3338

如果您希望將乙個字串限長顯示,如果該字串超過一定長數,就擷取前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...