我已阅读有关此问题的所有问题,并想知道$str = preg_replace('/[^\00-\255]+/u', '', $str);
是否足以满足我的情况。
我的情景
当用户在我的网站上创建帐户时,他会输入公司的名称。这可以是任何内容,包括'
或"
的文字,甚至是其他一些奇怪的字符。当他创建一个帐户时,我需要在我的服务器上创建一个文件夹,以便他更轻松地访问他的帐户,而无需使用uniqids
等。
例如,您为“Peter's Pet Shop& Washing”创建了一个帐户 - 我需要删除所有不允许作为url-address的空格和字符。所以最后我需要“peterspetshopwashing”
这样您就可以通过“www.mydomain.com/peterspetshopwashing”访问您的帐户
答案 0 :(得分:7)
我目前使用此功能我很满意
function url($url) {
$url = preg_replace('~[^\\pL0-9_]+~u', '-', $url);
$url = trim($url, "-");
$url = iconv("utf-8", "us-ascii//TRANSLIT", $url);
$url = strtolower($url);
$url = preg_replace('~[^-a-z0-9_]+~', '', $url);
return $url;
}
它用-
替换空格和其他奇数字符,因此结果为peter-s-pet-shop-washing