删除url-"not allowed"字符串中的字符


PHP Remove url-"not allowed" characters from string

我已经阅读了所有关于这方面的问题,并且想知道$str = preg_replace('/[^'00-'255]+/u', '', $str);是否足以满足我的场景。

<<p> 我的场景/strong>

当用户在我的站点上创建帐户时,他输入他的公司名称。这可以是任何包含'"的文本,甚至是一些其他奇怪的字符。当他创建一个帐户时,我需要在我的服务器上创建一个文件夹,以便他在不使用uniqids等的情况下更容易访问他的帐户。

例如,你创建了一个帐户"Peter's Pet Shop &"洗涤"-我需要删除所有不允许作为url地址的空格和字符。所以最后我需要输入"peterspetshopwashing"

这样您就可以访问您的帐户"www.mydomain.com/peterspetshopwashing"

我目前使用这个函数,我很满意

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