0

重複の可能性:
自動クリーンで SEO に適した URL (スラッグ)

Wordpress のような「きれいな URL 文字列」を作成する機能が必要です。例: 「これはフランス語とドイツ語の特殊文字 + その他の意味のある文字列であり、URL として使用したい」 -german-special-chars-other-mean-stuff-and-id-like-to-use-it-as-an-url"

私の怠惰を助けてください、それはすでに大変な日でした:-)

4

3 に答える 3

3

SEOフレンドリーなURLというタイトルで、多くの(多くの)例が利用可能です。

http://www.intrepidstudios.com/blog/2009/2/10/function-to-generate-a-url-friendly-string.aspx

function generateSlug($phrase, $maxLength)
{
    $result = strtolower($phrase);

    $result = preg_replace("/[^a-z0-9\s-]/", "", $result);
    $result = trim(preg_replace("/[\s-]+/", " ", $result));
    $result = trim(substr($result, 0, $maxLength));
    $result = preg_replace("/\s/", "-", $result);

    return $result;
}

$title = "A bunch of ()/*++\'#@$&*^!%     invalid URL characters  ";

echo(generateSlug($title));

// outputs
a-bunch-of-invalid-url-characters
于 2012-10-08T19:35:16.583 に答える
1

私はあなたが明日取り組む必要があることへのヒントを提供することによって今日あなたの怠惰を助けます:

$final_string = str_replace(
    array(' ', 'ă', 'â', 'ä'),
    array('-', 'a', 'a', 'a'),
    $initial_string
);

これには多くのバリエーションがあります。たとえば、RegEx(preg_replace)を使用して、複数のスペース/タブ/改行(\s*)や同じ置換()を持つはずの複数の文字などの文字のグループを照合しますă|â|ä

$final_string = preg_replace(
    array('/\s*/', '/ă|â|ä/'),
    array('-', 'a'),
    $initial_string
);
于 2012-10-08T19:34:46.693 に答える
0

バニアラPHP関数で得られる最も近いものはですがurlencode()、質問の例のように正確に出力されません。

例えば:

$my_string = strtolower(urlencode("This is a string with frénch and gêrmän special chars + other mean stuff and I'd like to use it as an URL"));
echo $my_string;

生成されます:

this+is+a+string+with+fr%e9nch+and+g%earm%e4n+special+chars+%2b+other+mean+stuff+and+i%27d+like+to+use+it+as+an+url

残念ながら、WordPressの関数と一致させるには、アルゴリズムに基づいて関数を作成するか、最初から関数を作成する必要があります。

于 2012-10-08T19:35:54.073 に答える