这里的正则表达式替换所有空格和点 - 但没有单引号和双引号。
$name = htmlspecialchars(trim(@$_POST["name"],' '),ENT_QUOTES);
$url = preg_replace("![^a-zA-Z0-9]+!i", "-", strtolower(htmlspecialchars(@$_POST["name"],ENT_QUOTES)));
答案 0 :(得分:1)
您已使用以下行将所有单引号和双引号转换为html特殊字符:
$name = htmlspecialchars(trim(@$_POST["name"],' '),ENT_QUOTES);
现在看起来像'"'
要替换所有必须事先解码的引号:
$url = preg_replace("![^a-zA-Z0-9]+!i", "-", strtolower(html_entity_decode($name,ENT_QUOTES)));