PHP擷取中文字串方法

2021-06-01 10:58:30 字數 2358 閱讀 2976

程式一:php擷取中文字串方法

由於**首頁以及vtigercrm裡經常在擷取中文字串時出現亂碼(使用substr),今天找到乙個比較好的擷取中文字串方法,在此與大家共享。

function msubstr($str,$start,$len)else

}echo  $newstr;}

程式二:php擷取utf-8字串,解決半字元問題

* php擷取utf-8字串,解決半字元問題。

* 英文、數字(半形)為1位元組(8位),中文(全形)為3位元組

* @return 取出的字串, 當$len小於等於0時, 會返回整個字串

* @param $str 源字串

* $len 左邊的子串的長度

function utf_substr($str,$len)  } 

else  } 

return join($new_str); 

} ?> 

php utf-8 字串擷取 

function cutstr($string, $length)  

} return join('', $info[0]); 

} $string="242432反對感是456犯得上廣泛大使館地方7890"; 

for($i=0;$i  

?>

擷取utf-8字串函式

為了支援多語言,資料庫裡的字串可能儲存為utf-8編碼,在**開發中可能需要用php擷取字串的一部分。為了避免出現亂碼現象,編寫如下的utf-8字串擷取函式

關於utf-8的原理請看 utf-8 faq

utf-8編碼的字元可能由1~3個位元組組成, 具體數目可以由第乙個位元組判斷出來。(理論上可能更長,但這裡假設不超過3個位元組)

第乙個位元組大於224的,它與它之後的2個位元組一起組成乙個utf-8字元

第乙個位元組大於192小於224的,它與它之後的1個位元組組成乙個utf-8字元

否則第乙個位元組本身就是乙個英文本元(包括數字和一小部分標點符號)。

以前為某**設計的**(也是現在用在首頁的長度擷取的函式)

code:

<?php // cut_str; 

//$sourcestr 是要處理的字串 

//$cutlength 為擷取的長度(即字數) 

function cut_str($sourcestr,$cutlength) 

elseif ($ascnum>=192) //如果ascii位高與192, 

elseif ($ascnum>=65 && $ascnum<=90) //如果是大寫字母, 

else //其他情況下,包括小寫字母和半形標點符號,  } 

if ($str_length>$cutlength) 

return $returnstr; 

} 擷取utf-8字串函式 

function fsubstr($title,$start,$len="",$magic=true) 

$start = $i; 

} } 

} if(strlen($title)<=$len) return substr($title,$start,$len); 

$alen = 0; 

$blen = 0; 

$realnum = 0; 

for($i=$start;$i   } 

else if(substr($title,$i,4) == ">")  } 

else if(substr($title,$i,5) == "&")  } 

else if(substr($title,$i,6) == """)  } 

else if(preg_match("/&#(\d+);?/i",substr($title,$i,8),$match))  } 

}else 

}elseif(ord($cur)>=248) 

}elseif(ord($cur)>=240) 

}elseif(ord($cur)>=224) 

}elseif(ord($cur)>=192) 

}elseif(ord($cur)>=128)elseelse 

} } 

} if($magic) 

else 

} }else 

} unset($cur); 

unset($alen); 

unset($blen); 

unset($realnum); 

unset($ctype); 

unset($cstep); 

return substr($title,$start,$length); 

}

php 擷取中文字串方法

擷取中文字串函式 param str 需要擷取的字串 param start 開始擷取的位置 param length 擷取的長度 return 此函式返回的是乙個陣列,因此要配合join函式來顯示字串 join substring utf8 str,start,lenth public funct...

PHP 中文字串擷取

本文提供兩種方法實現中文字串的擷取 1.使用系統提供的 mb substr 或iconv substr 函式 php.ini 配置檔案中的 mbstring 擴充套件要開啟才能使用 函式說明 string mb substr string str,int start int length null ...

PHP中文字串擷取函式

首先是csdn論壇php斑竹xuzuning 嘮叨 老大的,支援gb2312,gbk,big三種編碼。以下是 len 19 text 怎麼將新聞的很長的標題只顯示前面一些字,後面用.來代替?echo strlen text len text substr text,0,len chr 0 chr 0...