76

PHP変数を「Mycompany&MyName」から「my-company-my-name」に変換するにはどうすればよいですか?

すべて小文字にし、すべての特殊文字を削除し、スペースをダッシュ​​に置き換える必要があります。

4

3 に答える 3

258

この関数はSEOに適した文字列を作成します

function seoUrl($string) {
    //Lower case everything
    $string = strtolower($string);
    //Make alphanumeric (removes all other characters)
    $string = preg_replace("/[^a-z0-9_\s-]/", "", $string);
    //Clean up multiple dashes or whitespaces
    $string = preg_replace("/[\s-]+/", " ", $string);
    //Convert whitespaces and underscore to dash
    $string = preg_replace("/[\s_]/", "-", $string);
    return $string;
}

大丈夫なはずです:)

于 2012-07-04T13:56:26.803 に答える
9

特定の文字を置き換える: http ://se.php.net/manual/en/function.str-replace.php

例:

function replaceAll($text) { 
    $text = strtolower(htmlentities($text)); 
    $text = str_replace(get_html_translation_table(), "-", $text);
    $text = str_replace(" ", "-", $text);
    $text = preg_replace("/[-]+/i", "-", $text);
    return $text;
}
于 2012-07-04T14:06:34.793 に答える
9

そうです。特殊文字を処理する場合は、パターンで宣言する必要があります。そうしないと、フラッシュアウトされる可能性があります。あなたはそのようにそれをするかもしれません:

strtolower(preg_replace('/-+/', '-', preg_replace('/[^\wáéíóú]/', '-', $string)));
于 2012-07-04T14:33:50.310 に答える