PHP 将字符串转换为 SEO 友好 Url 对于孟加拉语语言类型
PHP Convert String to SEO Friendly Url For Bengali Language Type
我正在尝试将字符串转换为 seo 友好 url。为此,我编写了以下代码并将 table 列排序规则类型设置为 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, '', 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);
更改此行,您的功能将正常运行!
更多信息和相关答案在这里:
我正在尝试将字符串转换为 seo 友好 url。为此,我编写了以下代码并将 table 列排序规则类型设置为 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, '', 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);
更改此行,您的功能将正常运行! 更多信息和相关答案在这里: