我试图愚弄动态生成或网址,以便没有丑陋的网址编码字符。我使用MySQL数据库中的数据生成url。
例如,我有标题字段,我通过用短划线( - )替换空格来生成网址。
domain.com/movie/the-terminator/
问题在于我无法预料到标题中可能出现的所有角色。这意味着生成的网址不会与浏览器栏中的实际网址匹配,因为它会被编码。
是否有任何可用的PHP代码替换?我不想手动操作,因为有很多字符要编码。我还希望替换其他几个字符,如括号“(”和“)”。这可能是一个特殊的php方法,用定义的值替换url编码的字符,如果是这样,请告诉我,因为这可以很容易地解决我的问题,谢谢。
答案 0 :(得分:2)
查看此链接。 http://cubiq.org/the-perfect-php-clean-url-generator - “完美的PHP CLEAN URL GENERATOR”
示例:
setlocale(LC_ALL, 'en_US.UTF8');
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;
}