我想从href获得价值。
以下是我正在使用的HTML:
<div class="streeet">
<b>Name:</b>wwww<br />
<b>Post Code:</b>97
<b>City:</b>
<a href="/bar-fan-pers.html" title="abcd">VALUE</a>
<br />
</div>
我正在尝试使用preg_match_all
:
preg_match_all('/<div\s*class=\"walldetsleft\">[^>]*<a\s*href=\"[^>]*\"\s[^\>]*>(.*?)<\/a>/', $url, $val);
它不起作用 - 输出只是一个空数组。我怎么写一个正则表达式来做这个?
答案 0 :(得分:0)
这不是你要求的正则表达式,但它是我推荐的:
$html = '
<div class="streeet">
<b>Name:</b>wwww<br />
<b>Post Code:</b>97
<b>City:</b>
<a href="/bar-fan-pers.html" title="abcd">VALUE</a>
<br />
</div>';
// handle parsing errors yourself
libxml_use_internal_errors(true);
// instantiate new `DOMDocument` object
$dom = new DOMDocument();
// load $html into `DOMDocument`
$dom->loadHTML($html);
// get all anchor elements
$elements = $dom->getElementsByTagName('a');
// iterate over anchors
foreach($elements as $element) {
// get href attribute
$href = $element->getAttribute('href');
echo $href . PHP_EOL;
}
答案 1 :(得分:0)
您可以执行以下操作:
$doc = new DOMDocument;
$source = '<div class="streeet">
<b>Name:</b>wwww<br />
<b>Post Code:</b>97
<b>City:</b>
<a href="/bar-fan-pers.html" title="abcd">VALUE</a>
<br />
</div>';
$doc->loadHTML($source);
$out = $doc->getElementsByTagName('a')->item(0)->attributes->getNamedItem('href')->nodeValue;
echo $out;