我想从XML文件中提取所有网址,排除网址中的跟踪代码:
以下是网址的示例,它们都采用相同的格式
http://www.domain.com.au/category/pXXXXXX?uni_id=XXXXXX&cid=1_demo_1
因此,域之间唯一的变化是XXXXXX,这是一个数值
我想要的最终结果是
http://www.domain.com.au/category/pXXXXXX
我曾尝试在下面的代码中使用preg_replace,但它最终用随机(我认为)数字替换整个网址
$data = preg_replace('/http\:\/\/www\.domain\.com.au\/[^\?]+([^.]+)/','',$data);
答案 0 :(得分:1)
将XML中的网址与preg_match()
匹配:
preg_match("(http://[^\s]+|ftp://[^\s]+)", $input, $matches);
然后,您应该使用preg_replace()
,并且只应匹配需要删除的字符串部分:
foreach($matches as $value)
{
preg_replace("(\?[^\s]+)","",$value);
}