我正在嘗試將字串轉換為 seo 友好的 url。為此,我撰寫了以下代碼并將表列排序規則型別設定為utf8_general_ci它適用于英語,但不適用于孟加拉語。只為孟加拉語字串輸出單個連字符(-)
function seo_url( $string, $separator = '-' )
{
$accents_regex = '~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i';
$special_cases = array( '&' => 'and', "'" => '');
$string = mb_strtolower( trim( $string ), 'UTF-8' );
$string = str_replace( array_keys($special_cases), array_values( $special_cases), $string );
$string = preg_replace( $accents_regex, '$1', htmlentities( $string, ENT_QUOTES, 'UTF-8' ) );
$string = preg_replace("/[^a-z0-9]/u", "$separator", $string);
$string = preg_replace("/[$separator] /u", "$separator", $string);
return $string;
}
unicode 有沒有類似孟加拉語的解決方案
uj5u.com熱心網友回復:
要接受孟加拉語(或任何其他語言)的字形,您必須更改此行上的正則運算式:
$string = preg_replace("/[^a-z0-9]/u", "$separator", $string);
目前,它的意思是“用 - 改變不是字母或數字的任何字符”。另一個正則運算式要求“更改任何語言中不是字母或數字的任何字符”:
$string = preg_replace("/[^\p{L}\p{M}]/u", "$separator", $string);
更改此行,您的功能將正常作業!更多資訊和相關答案在這里:https ://stackoverflow.com/a/6005511/15282066
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/379281.html
