如何删除连续的字符并避免一些字符串

时间:2013-04-19 02:14:57

标签: php regex preg-replace

您好我想知道如何删除网址中的所有重复字符,但保持http://和查询字符串完整。

示例网址:

https://domain.com:800///some/here..jpg

目前有这个代码删除重复的字符:

preg_replace('/([^a-zA-Z0-9-_\s])\\1+/', '$1', urldecode($url))

并解析为:

https:/domain.com:800/some/here.jpg <-- removed the / from https://

如何才允许更换路径并保持其余部分完好无损?

1 个答案:

答案 0 :(得分:1)

我对正则表达式并不擅长,所以我可以在不修改代码的情况下为您提供替代解决方案:

$url = "https://domain.com:800///some/here..jpg";
$url_without_https = substr($url, 8); //assuming its always https://
$urlModified = preg_replace('/([^a-zA-Z0-9-_\s])\\1+/', '$1', urldecode($url_without_http));
$url = "http://" . $urlModified;