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