我试图用php
获取链接的目的地(动态)(静态)我不确定最好的办法是什么。
链接
<a href=page.php?XXYYYYYYY>LinkName</a>
X是字母,Y是数字(两者的长度可以不同)。 “Linkname”总是保持不变。
正则表达式是最好的选择吗?或者有更好的方法吗?
答案 0 :(得分:5)
我会使用像PHP的built in one或simpleHTMLDOMParser这样的DOM解析器来提取链接,并使用parse_url()来分析网址:
此函数解析URL并返回一个关联数组,该数组包含存在的URL的各种组件。
答案 1 :(得分:2)
正则表达式不是最好的方法。使用HTML解析器,例如DomDocument。
答案 2 :(得分:2)
如果你的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 Reader,DOM或SimpleHTML(如Pekka建议的那样)
答案 3 :(得分:0)
此模式将仅获取href之后的内容,直到链接名称
href=([\w.?]+)