1

我正在尝试对动态生成或 url 进行万无一失,以便没有丑陋的 url 编码字符。我使用 MySQL 数据库中的数据生成 url。

例如,我通过用破折号 (-) 替换空格来生成 url 的标题字段。

domain.com/movie/the-terminator/

问题是我无法预料标题中可能出现的所有角色。这意味着生成的 url 不会与浏览器栏中的实际 url 匹配,因为它会被编码。

是否有任何可用的 php 代码可以进行此替换?我不想手动进行,因为要编码的字符很多。我还想替换一些其他字符,例如括号“(”和“)”。这可能是一种特殊的 php 方法,可以用定义的值替换 url 编码的字符,如果是这样,请告诉我,因为这可以很容易地解决我的问题,谢谢。

4

1 回答 1

2

看看这个链接。http://cubiq.org/the-perfect-php-clean-url-generator - “完美的 PHP 清洁 URL 生成器”

例子:

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;
}
于 2012-10-15T15:45:40.523 回答