Heim Backend-Entwicklung PHP-Tutorial PHP中文字符串截取函数

PHP中文字符串截取函数

Jul 25, 2016 am 09:11 AM

  1. /****首先是CSDN论坛PHP斑竹xuzuning(唠叨)老大的,支持gb2312,gbk,big三种编码。
  2. 以下是代码:***/
  3. $len = 19;
  4. $text = "怎么将新闻的很长的标题只显示前面一些字,后面用.....来代替?";
  5. echo strlen($text)/****chr(0)不是null
  6. null是什么都没有,而chr(0)的值是0。表示成16进制是0x00,表示成二进制是00000000
  7. 虽然chr(0)不会显示出什么,但是他是一个字符。
  8. 当汉字被截断时,根据编码规则他总是要把后边的其他字符拉过来一起作为汉字解释,这就是出现乱码的原因。而值为0x81到0xff与0x00组合始终都显示为“空”
  9. 根据这一特点,在substr的结果后面补上一个chr(0),就可以防止出现乱码了
  10. 注:
  11. 编码 第一字节 第二字节
  12. gb2312 0xa1-0xf7 0xa1-0xfe
  13. gbk 0x81-0xfe 0x81-0xfe 0x40-0x7e
  14. big5 0xa1-0xf7 0x81-0xfe 0x40-0x7e
  15. 其次这个是网上搜索的,支持utf-8编码,原作者不详:
  16. *****/
  17. function subString_UTF8($str, $start, $lenth)
  18. {
  19. $len = strlen($str);
  20. $r = array();
  21. $n = 0;
  22. $m = 0;
  23. for($i = 0; $i $x = substr($str, $i, 1);
  24. $a = base_convert(ord($x), 10, 2);
  25. $a = substr('00000000'.$a, -8);
  26. if ($n if (substr($a, 0, 1) == 0) {
  27. }elseif (substr($a, 0, 3) == 110) {
  28. $i += 1;
  29. }elseif (substr($a, 0, 4) == 1110) {
  30. $i += 2;
  31. }
  32. $n++;
  33. }else{
  34. if (substr($a, 0, 1) == 0) {
  35. $r[ ] = substr($str, $i, 1);
  36. }elseif (substr($a, 0, 3) == 110) {
  37. $r[ ] = substr($str, $i, 2);
  38. $i += 1;
  39. }elseif (substr($a, 0, 4) == 1110) {
  40. $r[ ] = substr($str, $i, 3);
  41. $i += 2;
  42. }else{
  43. $r[ ] = '';
  44. }
  45. if (++$m >= $lenth){
  46. break;
  47. }
  48. }
  49. }
  50. return $r;
  51. } // End subString_UTF8;
  52. }// End String
  53. #由于此函数返回的是一个数组,因此要配合join函数来显示字符串:
  54. #join('',subString_UTF8($str, $start, $lenth));
  55. #在页面显示的时候还可以在此语句后面连一个"..."
复制代码


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium) 11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium) Mar 03, 2025 am 10:49 AM

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium)

Arbeiten mit Flash -Sitzungsdaten in Laravel Arbeiten mit Flash -Sitzungsdaten in Laravel Mar 12, 2025 pm 05:08 PM

Arbeiten mit Flash -Sitzungsdaten in Laravel

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests Mar 12, 2025 pm 05:09 PM

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren Mar 04, 2025 am 09:33 AM

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren

Einführung in die Instagram -API Einführung in die Instagram -API Mar 02, 2025 am 09:32 AM

Einführung in die Instagram -API

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs Mar 14, 2025 am 11:42 AM

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs

12 Beste PHP -Chat -Skripte auf Codecanyon 12 Beste PHP -Chat -Skripte auf Codecanyon Mar 13, 2025 pm 12:08 PM

12 Beste PHP -Chat -Skripte auf Codecanyon

Benachrichtigungen in Laravel Benachrichtigungen in Laravel Mar 04, 2025 am 09:22 AM

Benachrichtigungen in Laravel

See all articles