制造琴弦";URL安全”;


Making strings "URL safe"

可能重复:
PHP中的URL友好用户名?

有没有一种方法可以使字符串"URL安全",即用连字符替换空格,删除任何标点符号,并将所有大写字母改为小写?

例如:

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

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

您可以使用preg_replace来替换或更改这些字符。

$safe = preg_replace('/^-+|-+$/', '', strtolower(preg_replace('/[^a-zA-Z0-9]+/', '-', $string)));

我经常使用这个函数来生成我的干净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;
}