我试图在html标签之间获取价值:
preg_match(/<span class=\"value\">(.*)<\/span>/i', $file_string, $title);
html:
<p class="upc">
<label>UPC/EAN/ISBN:</label>
<span class="value">746775319571</span>
</p>
答案 0 :(得分:3)
您不会使用正则表达式解析HTML,而是使用php DOM extension代替:
$html = '<p class="upc">
<label>UPC/EAN/ISBN:</label>
<span class="value">746775319571</span>
</p>';
$dom = new DOMDocument();
$dom->loadHTML($html);
$spans = $dom->getElementsByTagName('span');
if ($spans->length > 0) {
echo $spans->item(0)->nodeValue; // outputs 746775319571
}
如果具有特定的类值是必需的约束,那么您可以通过迭代$spans
并检查class
属性(使用DOMElement::getAttributeNode
)手动执行检查。或者改为使用DOMXPath
。
无论哪种方式,我都把它留作家庭作业,因为我们都知道自己解决问题是多么令人满意!