亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

利用PHP分割字符串函數把字符串成分割數組

2024-09-04 11:48:42
字體:
來源:轉載
供稿:網友

在php中字符串分割有很多,如有str_split,explode,chunk_split()函數,下面我給大家分別整理了一些實例.

str_split() 可以將字符串按照需要的長度做分割,但是如果字符串中有UTF-8編碼的中文出現,就會出現亂碼,如果需要實現支持中文的按照長度分割字符串的功能就需要額外處理,代碼如下:

  1. <?php  
  2. $str = 'hello world';  
  3. $arr = str_split($str);  
  4. print_r($arr);  
  5. /*  
  6. Array  
  7.  
  8.      
  9. [0] => h  
  10.      
  11. [1] => e  
  12.      
  13. [2] => l  
  14.      
  15. [3] => l  
  16.      
  17. [4] => o  
  18.      
  19. [5] =>  
  20.      
  21. [6] => w  
  22.      
  23. [7] => o  
  24.      
  25. [8] => r  
  26.      
  27. [9] => l  
  28.      
  29. [10] => d  
  30.  
  31. */ 
  32.    
  33. $arr = str_split($str,2);  
  34. print_r($arr);  
  35. /*  
  36. Array  
  37.  
  38.      
  39. [0] => he  
  40.      
  41. [1] => ll  
  42.      
  43. [2] => o  
  44.      
  45. [3] => wo  
  46.      
  47. [4] => rl  
  48.      
  49. [5] => d  
  50.  
  51.    
  52. */ 
  53. ?> 

支持UTF-8編碼的中文的按照長度分割字符串函數,代碼如下:

  1. <?php  
  2. /**  
  3. * @version $Id: str_split.php 10381 2008-06-01 03:35:53Z pasamio $  
  4. * @package utf8  
  5. * @subpackage strings  
  6. */ 
  7. function utf8_str_split($str$split_len = 1)  
  8. {  
  9.     if (!preg_match('/^[0-9]+$/'$split_len) || $split_len < 1)  
  10.         return FALSE;  
  11.    
  12.     $len = mb_strlen($str'UTF-8');  
  13.     if ($len <= $split_len)  
  14.         return array($str);  
  15.    
  16.     preg_match_all('/.{'.$split_len.'}|[^x00]{1,'.$split_len.'}$/us'$str$ar);  
  17.    
  18.     return $ar[0];  
  19. }  
  20.    
  21. $str = 'hello 你好';  
  22.    
  23. $arr = utf8_str_split($str);  
  24. print_r($arr);  
  25. /*  
  26. Array  
  27.  
  28.      
  29. [0] => h  
  30.      
  31. [1] => e  
  32.      
  33. [2] => l  
  34.      
  35. [3] => l  
  36.      
  37. [4] => o  
  38.      
  39. [5] =>  
  40.      
  41. [6] => 你  
  42.      
  43. [7] => 好  
  44.  
  45. */ 
  46. ?> 

主要是chunk_split()函數的功能,與str_split()的區別是str_split()是把字符串按照長度分割成數組,而chunk_split()則是用一個指定的特殊符按照長度分割成新的字符串.相當于 str_split()+implode()兩個函數的功能,同樣這個函數是不支持中文的,需要實現這樣的功能需要自定義函數,代碼如下:

  1. <?php  
  2.     $data = "e0ab71ab9ed24e627a24e7d65367936393cb3b39db9a9e84d65cd7a9254a4665";  
  3.     echo chunk_split($data, 30, "<br />");  
  4.     echo implode("<br />",str_split($data,30)); 
  5. //和chunk_split效果一樣  
  6. ?> 

支持中文的自定義chunk_split()函數,代碼如下:

  1. <?php  
  2. //from Peter from dezzignz.com 05-Apr-2010 11:30 @ php.net  
  3.    
  4. function mbStringToArray ($str) {  
  5.     if (emptyempty($str)) return false;  
  6.     $len = mb_strlen($str);  
  7.     $array = array();  
  8.     for ($i = 0; $i < $len$i++) {  
  9.         $array[] = mb_substr($str$i, 1);  
  10.     }  
  11.     return $array;  
  12. }  
  13.    
  14. function mb_chunk_split($str$len$glue) {  
  15.     if (emptyempty($str)) return false;  
  16.     $array = mbStringToArray ($str);  
  17.     $n = 0;  
  18.     $new = '';  
  19.     foreach ($array as $char) {  
  20.         if ($n < $len$new .= $char;  
  21.         elseif ($n == $len) {  
  22.             $new .= $glue . $char;  
  23.             $n = 0;  
  24.         }  
  25.         $n++;  
  26.     }  
  27.     return $new;  
  28. }  
  29.    
  30. $data = "e0ab你好4e627a24e7d65367936393cb3b39db9釣魚島a9e84d65cd7a9254a4665"//開源代碼Vevb.com 
  31. echo mb_chunk_split($data, 30, "<br />");  
  32. ?> 

PHP explode函數說明,這個函數我們經常會用到.

explode 函數:該函數所支持版本(PHP 4,PHP 5),通常是比 split() 更快的替代方便,如果不需要正則表達式的威力,則使用 explode() 更快,這樣就不會招致正則表達式引擎的浪費.

explode:使用一個字符串分割另一個字符串.

說明:array explode(string $delimiter,string $string [,int $limit ])

此函數返回由字符串組成的數組,每個元素都是 string 的一個子串,它們被字符串 delimiter 作為邊界點分割出來.

參數:delimiter 邊界上的分隔字符.

string:輸入的字符串.

limit:如果設置了 limit 參數并且是正數,則返回的數組包含最多 limit 個元素,而最后那個元素將包含 string 的剩余部分,如果 limit 參數是負數,則返回除了最后的 -limit 個元素外的所有元素如果 limit 是 0,則會被當做 1.

由于歷史原因,雖然 implode() 可以接收兩種參數順序,但是 explode() 不行,你必須保證 separator 參數在 string 參數之前才行.

返回值:此函數返回由字符串組成的 array,每個元素都是 string 的一個子串,它們被字符串 delimiter 作為邊界點分割出來.

如果 delimiter 為空字符串(""),explode() 將返回 FALSE,如果 delimiter 所包含的值在 string 中找不到,并且使用了負數的 limit,那么會返回空的 array,否則返回包含 string 單個元素的數組.

Report a bug,更新日志

版本 說明 

5.1.0 支持負數的 limit 

4.0.1 增加了參數 limit

Example #1 explode() 例子,PHP代碼:

  1. <?php        
  2.     // 示例 1        
  3.     $pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";        
  4.     $pieces = explode(" "$pizza);        
  5.     echo $pieces[0]; // piece1        
  6.     echo $pieces[1]; // piece2     
  7.     // 示例 2        
  8.     $data = "foo:*:1023:1000::/home/foo:/bin/sh";        
  9.     list($user$pass$uid$gid$gecos$home$shell) = explode(":"$data);        
  10.     echo $user// foo        
  11.     echo $pass// *  
  12. ?> 

Example #2 explode() return examples,PHP代碼如下:

  1. <?php        
  2.     /* A string that doesn't contain the delimiter will simply return a one-length array of the original string. */       
  3.     $input1 = "hello";        
  4.     $input2 = "hello,there";        
  5.     var_dump( explode','$input1 ) );      
  6.     var_dump( explode','$input2 ) );        
  7.            
  8.     ?> 

以上例程會輸出:

  1. array(1) 
  2.     [0] => string(5) "hello" 
  3. array(2) 
  4.     [0] => string(5) "hello" 
  5.     [1] => string(5) "there" 

Example #3 limit 參數的例子,PHP代碼如下:

  1. <?php        
  2.     $str = 'one|two|three|four';        
  3.            
  4.     // 正數的 limit        
  5.     print_r(explode('|', $str, 2));        
  6.            
  7.     // 負數的 limit(自 PHP 5.1 起)        
  8.     print_r(explode('|', $str, -1));        
  9.     ?>      
  10. //以上例程會輸出: 
  11. //開源代碼Vevb.com 
  12. Array 
  13.     [0] => one 
  14.     [1] => two|three|four 
  15. Array 
  16.     [0] => one 
  17.     [1] => two 
  18.     [2] => three 
  19. )

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产a级全部精品| 成人黄色av网站| 亚洲天堂免费视频| 亚洲欧美中文日韩在线| 国产日韩中文在线| 欧美性生交大片免费| 成人免费直播live| 欧美性高跟鞋xxxxhd| 久久精品国产免费观看| 国产精品成人av性教育| 成人网址在线观看| 久久99久久亚洲国产| 国产在线精品一区免费香蕉| 久久久中文字幕| 精品动漫一区二区三区| 亚洲国产日韩欧美综合久久| 91精品国产91久久久久久最新| 91在线视频免费| 在线成人中文字幕| 成人免费自拍视频| 欧美精品免费在线| 91国偷自产一区二区三区的观看方式| 国产精品美女久久久久久免费| 日韩精品中文字幕在线观看| 久久夜色精品亚洲噜噜国产mv| 亚洲欧美在线播放| 久久久欧美一区二区| 亚洲欧美日韩精品久久奇米色影视| 日本老师69xxx| 欧美日本啪啪无遮挡网站| 7777精品视频| 日韩精品视频在线免费观看| 亚洲性生活视频在线观看| 欧美国产日韩一区| 久久免费观看视频| 国产精品久久久一区| 国产日韩av在线播放| 日韩av网址在线观看| 日韩成人激情影院| 欧美日韩亚洲天堂| 久久久久久久91| 亚洲午夜未满十八勿入免费观看全集| 欧美日韩一区二区免费在线观看| 一区二区三区回区在观看免费视频| 日韩极品精品视频免费观看| 日韩视频免费观看| 国产人妖伪娘一区91| 久久国产色av| 国产香蕉一区二区三区在线视频| 国产精品av免费在线观看| 在线观看日韩av| 久久久免费精品视频| 亚洲欧美视频在线| 欧美激情中文字幕在线| 亚洲视频国产视频| 国产精品老女人精品视频| 亚洲精品一区二区三区不| 亚洲欧美精品一区| 九九热r在线视频精品| 亚洲第五色综合网| 久久天天躁狠狠躁老女人| 欧美黄网免费在线观看| 91成人免费观看网站| 青青精品视频播放| 欧美日本黄视频| 韩国三级电影久久久久久| 国精产品一区一区三区有限在线| 夜夜嗨av色综合久久久综合网| 亚洲丝袜在线视频| 日韩最新av在线| 精品国产一区av| 久久中文字幕国产| 欧美xxxx14xxxxx性爽| 国产午夜精品免费一区二区三区| 91在线观看免费观看| 久久久精品在线观看| 高潮白浆女日韩av免费看| 日本精品视频在线| 国产91精品最新在线播放| 国产精品99久久久久久白浆小说| 一区二区亚洲欧洲国产日韩| 国产成人精品国内自产拍免费看| 亚洲美女在线观看| 亚洲精品720p| 久久免费视频这里只有精品| 国产精品无码专区在线观看| 亚洲精品xxxx| 丁香五六月婷婷久久激情| 中文字幕亚洲第一| 亚洲国产成人久久综合| 福利二区91精品bt7086| 456国产精品| 久99久在线视频| 国产成人精品日本亚洲| 亚洲成人教育av| 国产91精品高潮白浆喷水| 97色在线观看| 欧美日韩国产影院| 亚洲国产精品小视频| 最新中文字幕亚洲| 中文字幕日韩欧美在线| 国产精品久久91| 欧美中文在线视频| 亚洲精品久久久久| 97精品久久久| 亚洲天堂免费视频| 日韩精品中文字幕视频在线| 欧美重口另类videos人妖| 92裸体在线视频网站| 国产精品免费观看在线| 91精品美女在线| 俺也去精品视频在线观看| 日韩欧美中文字幕在线观看| 欧美黑人一级爽快片淫片高清| 亚洲成人在线视频播放| 亚洲a级在线观看| 日韩av大片在线| 成人信息集中地欧美| 欧美精品日韩三级| 色天天综合狠狠色| 中文字幕日韩视频| 国产精品久久视频| 北条麻妃一区二区三区中文字幕| 久青草国产97香蕉在线视频| 久久亚洲精品一区| 久久的精品视频| 欧美床上激情在线观看| 日韩成人小视频| 精品视频一区在线视频| 欧美午夜精品久久久久久人妖| 91高清视频免费| 欧美性猛交xxx| 国外成人在线直播| 久久精品国产亚洲7777| 成人福利在线视频| 国产婷婷成人久久av免费高清| 亚洲白虎美女被爆操| 91在线观看免费高清完整版在线观看| 欧美性理论片在线观看片免费| 色偷偷91综合久久噜噜| 91a在线视频| 亚洲欧洲第一视频| 欧美性猛交xxxx黑人猛交| 国产精品视频永久免费播放| 亚洲黄页视频免费观看| 国产亚洲精品久久久久久牛牛| 久久中文精品视频| 狠狠躁夜夜躁人人爽天天天天97| 欧美日韩免费在线| 欧美激情亚洲激情| 色久欧美在线视频观看| 国产亚洲成精品久久| 亚洲精品在线视频| 成人免费网站在线观看| 亚洲图片制服诱惑| 国产精品久久久久久久久久免费| 国产成人极品视频| 亚洲国产91精品在线观看| 亚洲欧美www| 精品伊人久久97| 68精品国产免费久久久久久婷婷| 国产精品高潮视频| 国产精品久久久久久久一区探花| 欧美激情二区三区|