我将一些用户提供的内容放在我的网址中以供搜索引擎优化,使用此代码进行清理:
/**
* 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友好,那就太好了。
今天是希伯来语,但明天可能是俄语,中文,克林贡语......
答案 0 :(得分:2)
看看这个功能,它适用于俄语,乌克兰语,土耳其语,波兰语,拉脱维亚语,希腊语和拉丁语:
http://iamseanmurphy.com/creating-seo-friendly-urls-in-php-with-url-slug/