PHP字符串操作:提取HREF

PHP字符串操作:提取HREF,php,string,href,extract,Php,String,Href,Extract,我有一个HTML字符串,我想检查里面是否有任何链接,如果有,提取它们并将它们放入数组中。我可以在jQuery中使用简单的选择器来实现这一点,但是我找不到在PHP中使用的正确方法 例如,字符串可能如下所示: <h1>Doctors</h1> <a title="C - G" href="linkl.html">C - G</a> <a title="G - K" href="link2.html">G - K</a> <

我有一个HTML字符串,我想检查里面是否有任何链接,如果有,提取它们并将它们放入数组中。我可以在jQuery中使用简单的选择器来实现这一点,但是我找不到在PHP中使用的正确方法

例如,字符串可能如下所示:

<h1>Doctors</h1>
<a title="C - G" href="linkl.html">C - G</a>
<a title="G - K" href="link2.html">G - K</a>
<a title="K - M" href="link3.html">K - M</a>
谢谢,
Ian

你的问题很难理解,但我相信你想要一个PHP DOM解析器,你可以在这里找到简单的DOM解析器:一个小的用法示例是:

$array = array();
foreach($html->find('a') as $a) 
{
    $array[] = $a->href;
}

您可以使用jQuery,然后您应该能够使用它,这没有问题,因为它的选择系统与jQuery以及CSS相同,因为jQuery源自CSS,您可以使用PHPs
DOMDocument
库解析XML和/或HTML。类似于以下内容的操作应该可以从HTML字符串中获取
href
属性

$html = '<h1>Doctors</h1>
<a title="C - G" href="linkl.html">C - G</a>
<a title="G - K" href="link2.html">G - K</a>
<a title="K - M" href="link3.html">K - M</a>';

$hrefs = array();

$dom = new DOMDocument();
$dom->loadHTML($html);

$tags = $dom->getElementsByTagName('a');
foreach ($tags as $tag) {
       $hrefs[] =  $tag->getAttribute('href');
}
$html=”医生
';
$hrefs=array();
$dom=新的DOMDocument();
$dom->loadHTML($html);
$tags=$dom->getElementsByTagName('a');
foreach($tags作为$tag){
$hrefs[]=$tag->getAttribute('href');
}

如果格式始终相同,您可能可以使用explode和strip_标签组合进行分类,例如

 $html="<span class="field-content"><a href="http://url_to_extract">whatever</a></span>"


 $href=end(explode('"',strip_tags($html)));
$html=“”
$href=end(分解(“”,带标签($html));
单线解决方案

$href = (string)( new SimpleXMLElement($your_html_tag))['href'];
可能重复的
$href = (string)( new SimpleXMLElement($your_html_tag))['href'];