如何清理explode()函数以仅提取我需要的标记?

时间:2015-02-05 04:11:45

标签: php

我有一些提取网址的PHP代码。我提取的对象是以下形式:

WEBSITE?flage=2&fgast=48&frat=1&sort=D&fsrc=2&wid=bf&page=1&id=16123012&source=searchresults

现在在PHP中我调用了这个对象$linkHREF

我想只提取id元素并将其放入数组中(我正在引导此过程以获取多个id)

所以命令是:

$detailPagePathArray = explode("id=",$linkHREF); #Array

现在问题是输出包括id标记之后的内容,因此输出如下:

echo $detailPagePathArray[0] = WEBSITE?flage=2&fgast=48&frat=1&sort=D&fsrc=2&w
echo $detailPagePathArray[1] = bf&page=1&
echo $detailPagePathArray[2] = 16123012&source=searchresults

现在问题很明显,它首先拿起"id"标记中的"wid"并将其切割到那里,但是第二个问题是它还会在实际之后拾取所有材料"id"。我只对选择"16123012"感兴趣。

您能解释一下我如何修改我的爆炸命令,将其指向我感兴趣的特定标记吗?

感谢。

2 个答案:

答案 0 :(得分:2)

使用为此目的提供的内置功能。

例如:

<?php

$url = 'http://www.example.com?flage=2&fgast=48&frat=1&sort=D&fsrc=2&wid=bf&page=1&id=16123012&source=searchresults';
$qs = parse_url($url);
parse_str($qs['query'], $vars);
$id = $vars['id'];
echo $id;        // 16123012

?>

参考文献:

答案 1 :(得分:0)

如果您确定在对象中只获得了一次&amp; id = 123456,那么

$linkHREF = "WEBSITE?flage=2&fgast=48&frat=1&sort=D&fsrc=2&wid=bf&page=1&id=16123012&source=searchresults";
$str =  current(explode('&',end(explode('&id', $linkHREF,2))));

echo "id" .$str; //output id = 16123012