我试着用PHP抓住一个特定链接的目标与PHP
林不知道该怎么办的最好方式,这是抓住一个链接(静态)的目的地(动态)。
链路是
<a href=page.php?XXYYYYYYY>LinkName</a>
的X是字母和Y的是数字(二者的长度可以变化)。 'Linkname'始终保持不变。
是否正则表达式是这里最好的选择?或者,还有更好的方法?
我试着用PHP抓住一个特定链接的目标与PHP
林不知道该怎么办的最好方式,这是抓住一个链接(静态)的目的地(动态)。
链路是
<a href=page.php?XXYYYYYYY>LinkName</a>
的X是字母和Y的是数字(二者的长度可以变化)。 'Linkname'始终保持不变。
是否正则表达式是这里最好的选择?或者,还有更好的方法?
我会使用DOM解析器等PHP的built in one或simpleHTMLDOMParser提取的链接,然后parse_url()分析URL:
此功能解析一个URL,并返回包含任何的各种组件的一个关联数组存在的URL。
正则表达式不是最好的方法。使用HTML解析器,如DomDocument。
这种模式将只得到什么在href后,直到该链接名称
href=([\w.?]+)
如果你的HTML是有效的,你可以用SimpleXML
做到这一点很容易$html = <<< HTML
<ul>
<li><a href="page.php?XX">Link1</a></li>
<li><a href="page.php?YY">Link2</a></li>
<li><a href="page.php?ZZ">Link3</a></li>
</ul>
HTML;
然后
$doc = simplexml_load_string($html);
$links = $doc->xpath('//a/@href');
foreach ($links as $link) {
$url = parse_url($link);
var_dump($url['query']);
}
输出
string(2) "XX"
string(2) "YY"
string(2) "ZZ"
如果有效的HTML是不是一种选择,尝试XML阅读器,DOM或SimpleHTML(如佩卡建议)