簡體   English   中英

PHP 將字符串轉換為 SEO 友好 Url 用於孟加拉語語言類型

[英]PHP Convert String to SEO Friendly Url For Bengali Language Type

我正在嘗試將字符串轉換為對 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 是否有類似孟加拉語的解決方案

要接受孟加拉語(或任何其他語言)的字形,您必須更改此行的正則表達式:

 $string = preg_replace("/[^a-z0-9]/u", "$separator", $string);

目前,它的意思是“用 - 改變任何不是字母或數字的字符”。 通過另一個正則表達式詢問“更改任何不是任何語言的字母或數字的任何字符”:

$string = preg_replace("/[^\p{L}\p{M}]/u", "$separator", $string);

更改此行,您的 function 將正常工作:更多信息和相關答案: https://stackoverflow.com/a/6005511/15282066

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM