可能重复:
PHP 中的 URL 友好用户名?
有没有办法使字符串“URL安全”,这意味着用连字符替换空格,删除任何标点符号并将所有大写字母更改为小写?
例如:
"This is a STRING" -› "this-is-a-string"
或者
"Hello World!" –› "hello-world"
可能重复:
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;
}