PHP从字符串中删除不允许的url-"字符

2022-03-22 00:00:00 php preg-replace

我已通读了有关此问题的所有问题,我想知道$str = preg_replace('/[^0-255]+/u', '', $str);是否足以满足我的方案。

我的方案

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

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

这是为了让您可以访问您的帐户"www.mydomain.com/peterspetshop washing"


解决方案

我目前使用此功能很满意

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

相关文章