PHP从字符串中删除url-“not allowed”字符

时间:2011-09-27 11:17:54

标签: php preg-replace

我已阅读有关此问题的所有问题,并想知道$str = preg_replace('/[^\00-\255]+/u', '', $str);是否足以满足我的情况。

我的情景

当用户在我的网站上创建帐户时,他会输入公司的名称。这可以是任何内容,包括'"的文字,甚至是其他一些奇怪的字符。当他创建一个帐户时,我需要在我的服务器上创建一个文件夹,以便他更轻松地访问他的帐户,而无需使用uniqids等。

例如,您为“Peter's Pet Shop& Washing”创建了一个帐户 - 我需要删除所有不允许作为url-address的空格和字符。所以最后我需要“peterspetshopwashing”

这样您就可以通过“www.mydomain.com/peterspetshopwashing”访问您的帐户

1 个答案:

答案 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