URL中的preg_match ID

-1 php parameters url preg-replace

编辑:对不起,我的第一篇文章并不是很清楚.好吧,我有文本存储在数据库中,我喜欢处理它,并寻找我网站上的产品的任何链接,并将它们变成一个奇特的链接.下面是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&modules = info# Desc

$s = preg_replace("%(?<![=\]\'\"\w])https?://[^<>\s\'\",]*$ADDRESS\/details\.php\?id=([0-9]+)[^<>\s\'\",]+%ie", "detailsLink(\\1)", $s);
Run Code Online (Sandbox Code Playgroud)

$ ADDRESS的值是192.168.2.22/dev

Raf*_*ael 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);
Run Code Online (Sandbox Code Playgroud)

给你:

Array
(
    [id] => 21
    [module] => info
)
Run Code Online (Sandbox Code Playgroud)

parse_str() parse_url()