ホームページ  >  記事  >  バックエンド開発  >  中国語の文字の長さをインターセプトするPHPカスタム関数の例

中国語の文字の長さをインターセプトするPHPカスタム関数の例

WBOY
WBOYオリジナル
2016-07-25 08:53:21751ブラウズ
  1. function msubstr($str,$start,$len) {
  2. $strlen=$start+$len;
  3. for($i=0;$i<$strlen;$i++) {
  4. if(ord( substr($str,$i,1))>0xa0) {
  5. $tmpstr.=substr($str,$i,2)
  6. } else
  7. $tmpstr.=substr($str,$) i,1);
  8. }
  9. return $tmpstr
コードをコピーします

    $str="この文字は長いです^_^";

  1. $Short_Str=showShort($str,4);//最初の 4 つの中国語をインターセプトします文字の場合、結果は次のようになります。
  2. Echo "$Short_Str";
  3. 関数 csubstr($str,$start,$len)
  4. $strlen=strlen($str); for( $i=0;$i<$strlen;$i++,$clen++)
  5. {
  6. if ($clen>=$start+$len)
  7. break; ord(substr($str,$i,1) )) >0xa0)
  8. {
  9. if ($clen>=$start)
  10. $tmpstr.=substr($str,$i,2)
  11. } bbs.it-home.org
  12. else
  13. ; {
  14. if ($clen>=$start)
  15. $tmpstr.=substr($str,$i,1)
  16. }
  17. }

  18. return $tmpstr;

  19. 関数 showShort ($ str,$len)
  20. {
  21. $tempstr = csubstr($str,0,$len);
  22. if ($str$tempstr)
  23. $tempstr .= "...";

  24. return $tempstr;

  25. }

  26. コードをコピーしてください
  27. ここで、長さをインターセプトするより簡潔な方法を共有します。漢字の:
$len = 19;
$text = "長いニュースタイトルの最初の数単語だけを表示して...に置き換えるにはどうすればよいですか?"; )<=$len ? $text : (substr($text,0,$len).chr(0)."....");

コードをコピー
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。