Php URL中的预匹配ID

Php URL中的预匹配ID,php,url,parameters,preg-replace,Php,Url,Parameters,Preg Replace,编辑: 对不起,我对我的第一篇文章不是很清楚。好的,我有文本存储在数据库中,我想处理它,并寻找任何链接到我的网站上的产品,并把他们变成一个花哨的链接。下面是2个链接和我当前的经验。第二个链接Link2按预期工作,并将值21传递给detailsLink我的问题在于Link1它将值2传递给detailsLink而不是按预期的21。我想完全忽略url,因为detailsLink重新创建了带有产品评级/cat等的链接。它还应该适用于http或https链接 链接1: 链接2: $ADDRESS的值是19

编辑: 对不起,我对我的第一篇文章不是很清楚。好的,我有文本存储在数据库中,我想处理它,并寻找任何链接到我的网站上的产品,并把他们变成一个花哨的链接。下面是2个链接和我当前的经验。第二个链接Link2按预期工作,并将值21传递给detailsLink我的问题在于Link1它将值2传递给detailsLink而不是按预期的21。我想完全忽略url,因为detailsLink重新创建了带有产品评级/cat等的链接。它还应该适用于http或https链接

链接1: 链接2:


$ADDRESS的值是192.168.2.22/dev,我不明白。为什么不直接使用$_GET['id']


编辑:没关系。我从来不知道那些功能!解析url,即

无需重新发明轮子:

$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
)

可能是因为它不是当前页面的URL。这是我最初的想法,但问题的措辞非常混乱。对不起,我不是很清楚,这是一些用户发布的存储在数据库中的文本,我正在处理这些文本以在网站上显示,我想将文本中找到的任何产品链接转换为一个奇特的链接。请不要使用eval修饰符,而是使用preg_replace_回调。请不要用regex重新发明轮子。PHP中已有解析URL的查询信息部分的函数。看见
Array
(
    [id] => 21
    [module] => info
)