摘要:截取中英文字符串截取中英文字符串,就不必再用或者截取想這樣的字符串李三像不確定字符串是什么組成方式的時候,拿不準該用還是的時候,可以試試以下方法,是否能解決的你得煩惱利用中英混合的字符串截取字符串的字節數得到字符串中第位字符的碼如果位高與,
php 截取中英文字符串
php 截取中英文字符串,就不必再用substr或者mb_substr
//截取想這樣的字符串 a李三
像不確定字符串是什么組成方式的時候,拿不準該用substr還是mb_substr的時候 ,可以試試以下方法,是否能解決的你得煩惱
利用ASCII
/** * * 中英混合的字符串截取 * @param unknown_type $sourcestr * @param unknown_type $cutlength */ function assoc_substr($sourcestr, $cutlength) { $returnstr = ""; $i = 0; $n = 0; $str_length = strlen ( $sourcestr ); //字符串的字節數 while ( ($n < $cutlength) and ($i <= $str_length) ) { $temp_str = substr ( $sourcestr, $i, 1 ); $ascnum = Ord ( $temp_str ); //得到字符串中第$i位字符的ascii碼 if ($ascnum >= 224) {//如果ASCII位高與224, $returnstr = $returnstr . substr ( $sourcestr, $i, 3 ); //根據UTF-8編碼規范,將3個連續的字符計為單個字符 $i = $i + 3; //實際Byte計為3 $n ++; //字串長度計1 } elseif ($ascnum >= 192){ //如果ASCII位高與192, $returnstr = $returnstr . substr ( $sourcestr, $i, 2 ); //根據UTF-8編碼規范,將2個連續的字符計為單個字符 $i = $i + 2; //實際Byte計為2 $n ++; //字串長度計1 } elseif ($ascnum >= 65 && $ascnum <= 90) {//如果是大寫字母, $returnstr = $returnstr . substr ( $sourcestr, $i, 1 ); $i = $i + 1; //實際的Byte數仍計1個 $n ++; //但考慮整體美觀,大寫字母計成一個高位字符 }elseif ($ascnum >= 97 && $ascnum <= 122) { $returnstr = $returnstr . substr ( $sourcestr, $i, 1 ); $i = $i + 1; //實際的Byte數仍計1個 $n ++; //但考慮整體美觀,大寫字母計成一個高位字符 } else {//其他情況下,半角標點符號, $returnstr = $returnstr . substr ( $sourcestr, $i, 1 ); $i = $i + 1; $n = $n + 0.5; } } return $returnstr; }
通過這樣就可以很方便的進行一些字符串的截取等,避免因為字節不同而截取亂碼或者不對的情況。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28743.html
摘要:應用場景從數據庫讀取產品標題過長時,會導致布局混亂,我們可以使用字符串截斷函數進行截斷,用代替截斷部分。 應用場景 從數據庫讀取產品標題過長時,會導致布局混亂,我們可以使用字符串截斷函數進行截斷,用...代替截斷部分。 函數代碼 /** * 字符截?。▽χ形摹⒂⑽亩伎梢赃M行截?。? * @param string $string 字符串 * @...
摘要:這里簡單介紹一下方法,中文解釋就是將整個文件讀入一個字符串,它有個參數這里他們分別表示要讀取的文件的名稱,另指路徑,后面三個參數基本不會用到,甚至第二個參數都很少見,所以重點是確定你要讀取文件的路徑,是絕對路徑。 簡述 接觸PHP差不多2年,從懵懂到入門,再到追求穩定高效的高階級學習,我慢慢的積累一些PHP編程經驗,我本人記性不好,所以把這些經驗記下來,慢慢累積,樂自助人,何樂不為呢?...
遞歸創建目錄 /** * 遞歸創建目錄 * @param [type] $dir [description] * @return [type] [description] */ function mkdirs($dir) { if(!is_dir($dir)){ if(!mkdirs(dirname($dir))){ return...
摘要:一概念變量修飾器調節器可用于變量,自定義函數和字符串。請使用符號和修飾器名稱應用修飾器。變量修飾器由賦予的參數值決定其行為。與之相反將變量值轉成大寫字母所有字母,無參數。它與修飾器的效果剛好相反。它們會按復合的順序來作用于變量,從左到右。 一、概念 變量修飾器(調節器)可用于變量,自定義函數和字符串。 請使用‘|’符號和修飾器名稱應用修飾器。 變量修飾器由賦予的參數值決定其行為。 參數...
閱讀 3283·2023-04-25 18:03
閱讀 1146·2021-11-15 11:38
閱讀 5544·2021-10-25 09:45
閱讀 844·2021-09-24 09:48
閱讀 2295·2021-09-22 15:34
閱讀 1739·2019-08-30 15:44
閱讀 2681·2019-08-30 13:12
閱讀 607·2019-08-29 16:05