为了 SEO 目的,我将一些用户提供的内容放在我的 URL 中,使用以下代码对其进行清理:
/**
* Create URL friendly strings or filenames
* @param type $str
* @param type $replace
* @param type $delimiter
* @return type
*/
public static function toAscii($str, $replace=array(), $delimiter='-') {
if(!empty($replace)) {
$str = str_replace((array)$replace, ' ', $str);
}
$clean = iconv('UTF-8', 'ASCII//TRANSLIT', $str);
$clean = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $clean);
$clean = strtolower(trim($clean, '-'));
$clean = preg_replace("/[\/_|+ -]+/", $delimiter, $clean);
return $clean;
}
然而,我发现这还不够。一篇带有一些希伯来字符的文章给了我:
iconv():在输入字符串中检测到非法字符
是否有一个灵丹妙药的功能可以安全地将字符串变成漂亮的 URL?至少我希望它不会崩溃。然后,如果 URL 仍然看起来不错并且对 SEO 友好,那就太好了。
今天是希伯来语,但明天可能是俄语、汉语、克林贡语……