2

重複の可能性:
PHP での URL フレンドリなユーザー名?

空白をハイフンに置き換え、句読点を削除し、すべての大文字を小文字に変更することを意味する文字列を「URLセーフ」にする方法はありますか?

例えば:

"This is a STRING" -› "this-is-a-string"

また

"Hello World!" –› "hello-world"
4

2 に答える 2

9

preg_replaceこれらの文字を変更するために使用できます。

$safe = preg_replace('/^-+|-+$/', '', strtolower(preg_replace('/[^a-zA-Z0-9]+/', '-', $string)));
于 2013-01-17T11:31:45.943 に答える
2

私はしばしばこの関数を使用してクリーンな URL を生成しますが、問題なく動作するようです。必要に応じて変更することもできますが、試してみてください。

function sanitize($string, $force_lowercase = true, $anal = false) {
    $strip = array("~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "=", "+", "[", "{", "]",
                   "}", "\\", "|", ";", ":", "\"", "'", "‘", "’", "“", "”", "–", "—",
                   "—", "–", ",", "<", ".", ">", "/", "?");
    $clean = trim(str_replace($strip, "", strip_tags($string)));
    $clean = preg_replace('/\s+/', "-", $clean);
    $clean = ($anal) ? preg_replace("/[^a-zA-Z0-9]/", "", $clean) : $clean ;
    return ($force_lowercase) ?
        (function_exists('mb_strtolower')) ?
            mb_strtolower($clean, 'UTF-8') :
            strtolower($clean) :
        $clean;
}
于 2013-01-17T11:29:44.733 に答える