编辑: 对不起,我的第一篇文章并不是很清楚。好吧,我有文本存储在数据库中,我喜欢处理它,并寻找我网站上的产品的任何链接,并将它们变成一个奇特的链接。下面是2个链接和我当前的exp。第二个链接(Link2)按预期工作并将值21传递给detailsLink()我的问题在于Link1它将值2传递给detailsLink()而不是21。我想完全忽略url,因为detailsLink()会重新创建带有产品评级/ cat等的链接。它也应该适用于http或https链接。
Link1:http://192.168.2.22/dev/details.php?id=21 Link2:http://192.168.2.22/dev/details.php?id=21&module=info#Desc
$s = preg_replace("%(?<![=\]\'\"\w])https?://[^<>\s\'\",]*$ADDRESS\/details\.php\?id=([0-9]+)[^<>\s\'\",]+%ie", "detailsLink(\\1)", $s);
$ ADDRESS的值是192.168.2.22/dev
答案 0 :(得分:5)
无需重新发明轮子:
$url="http://192.168.2.22/dev/details.php?id=21&module=info#Desc";
parse_str(parse_url($url,PHP_URL_QUERY), $arr);
print_r($arr);
给你:
Array
(
[id] => 21
[module] => info
)
答案 1 :(得分:1)
我不明白。你为什么不用$_GET['id']
?