1

私は、醜い URL エンコード文字がないように、動的生成または URL を確実に実行しようとしています。MySQL データベースからのデータを使用して URL を生成します。

たとえば、スペースをダッシュ​​ (-) に置き換えて URL を生成するタイトル フィールドがあります。

domain.com/movie/the-terminator/

問題は、タイトルに含まれる可能性のあるすべてのキャラクターを予測できないことです。これは、生成された URL がエンコードされるため、ブラウザ バーの実際の URL と一致しないことを意味します。

この置換を行う利用可能なphpコードはありますか? エンコードする文字がたくさんあるので、手動でやりたくありません。また、括弧「(」や「)」など、他の文字をいくつか置き換えたいと思います。これは、URL エンコードされた文字を定義済みの値に置き換える特別な php メソッドである可能性があります。その場合は、問題を非常に簡単に解決できる可能性があるのでお知らせください。

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 に答える