您好我有一个网站,其中所有网址都是seo现在我将我的网站转移到乌尔都语语言,但因为网址是urdu它不显示正确的网址是否有人有seo功能,我可以使用
我的网站网址现在就像这个domain.com/123//它应该像这样domain.com/123 /عوأنالاأعرفمنأينأستطيعأنأراك/
这是我目前的代码。
function seoUrl($input)
{
/**
* Return URL-Friendly string slug
* @param string $input
* @return string
*/
$input = remove_accent( $input );
$input = str_replace(" ", " ", $input);
$input = str_replace(array("'", "-"), "", $input); //remove single quote and dash
$input = mb_convert_case($input, MB_CASE_LOWER, "UTF-8"); //convert to lowercase
$input = preg_replace("#[^a-zA-Z]+#", "-", $input); //replace everything non an with dashes
$input = preg_replace("#(-){2,}#", "$1", $input); //replace multiple dashes with one
$input = trim($input, "-"); //trim dashes from beginning and end of string if any
return $input;
}
function remove_accent( $str )
{
$a = array('À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö',
'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'ß', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï',
'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', 'A', 'a', 'A', 'a', 'A', 'a', 'C', 'c', 'C', 'c',
'C', 'c', 'C', 'c', 'D', 'd', 'Ð', 'd', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'G', 'g', 'G', 'g', 'G',
'g', 'G', 'g', 'H', 'h', 'H', 'h', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', '?', '?', 'J', 'j', 'K', 'k',
'L', 'l', 'L', 'l', 'L', 'l', '?', '?', 'L', 'l', 'N', 'n', 'N', 'n', 'N', 'n', '?', 'O', 'o', 'O', 'o', 'O', 'o',
'Œ', 'œ', 'R', 'r', 'R', 'r', 'R', 'r', 'S', 's', 'S', 's', 'S', 's', 'Š', 'š', 'T', 't', 'T', 't', 'T', 't', 'U',
'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'W', 'w', 'Y', 'y', 'Ÿ', 'Z', 'z', 'Z', 'z', 'Ž', 'ž', '?',
'ƒ', 'O', 'o', 'U', 'u', 'A', 'a', 'I', 'i', 'O', 'o', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', '?', '?',
'?', '?', '?', '?');
$b = array('A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'D', 'N', 'O', 'O', 'O', 'O', 'O',
'O', 'U', 'U', 'U', 'U', 'Y', 's', 'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'n',
'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y', 'A', 'a', 'A', 'a', 'A', 'a', 'C', 'c', 'C', 'c', 'C', 'c',
'C', 'c', 'D', 'd', 'D', 'd', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'G', 'g', 'G', 'g', 'G', 'g', 'G', 'g',
'H', 'h', 'H', 'h', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'IJ', 'ij', 'J', 'j', 'K', 'k', 'L', 'l', 'L', 'l',
'L', 'l', 'L', 'l', 'l', 'l', 'N', 'n', 'N', 'n', 'N', 'n', 'n', 'O', 'o', 'O', 'o', 'O', 'o', 'OE', 'oe', 'R', 'r', 'R',
'r', 'R', 'r', 'S', 's', 'S', 's', 'S', 's', 'S', 's', 'T', 't', 'T', 't', 'T', 't', 'U', 'u', 'U', 'u', 'U', 'u', 'U',
'u', 'U', 'u', 'U', 'u', 'W', 'w', 'Y', 'y', 'Y', 'Z', 'z', 'Z', 'z', 'Z', 'z', 's', 'f', 'O', 'o', 'U', 'u', 'A', 'a',
'I', 'i', 'O', 'o', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'A', 'a', 'AE', 'ae', 'O', 'o');
return str_replace($a, $b, $str);
}
答案 0 :(得分:-1)
问题是@deceze指出的。网址只能包含拉丁字母中的字符(实际上,在英文字母表中),因此您在网址中使用乌尔都语的唯一方法是使用英文字母进行最佳处理。
例如,我说加泰罗尼亚语,而且,有口音的一部分,我们收到了这封信:ç。它几乎是 c ,但它听起来像是 s ,所以当用ç敲打文本时(例如,Març),我会选择Marc(角色)相似性)或火星(语音相似性)。你可以遵循这种模式。否则,我认为你无能为力。
修改强> 在url编码快速课程之后,你们都应该阅读这个答案下面的评论。
我转向完全阅读你的功能,我想我偶然会理解“在幕后”发生了什么:
你得到你的乌尔都语字符串,比如你之前提到的字符串:ع وأنا لا أعرف من أين أستطيع أن أراك
remove_accent()
。它不包含任何没有重音的其他乌尔都语字符,因此返回相同的字符串:ع وأنا لا أعرف من أين أستطيع أن أراك
。ع وأنا لا أعرف من أين أستطيع أن أراك
。ع وأنا لا أعرف من أين أستطيع أن أراك
。
问题出现 ------------------------------------
。-
。(empty)
所以,你遇到的主要问题是第一个正则表达式函数。我不知道如何解决这个问题。可能有一个技巧将所有这些字符转换为ASCII,然后创建一个试图解决它的正则表达式。但是,我会采取以下步骤:
_., !'?&
等符号中的字符串,并将其转换为-
。utf8_decode()
可能就足够了,但我还没有尝试过)