仅使用php preg_匹配获取价格

仅使用php preg_匹配获取价格,php,Php,我试图从html源代码中获取价格 这是源代码的一部分 <h1> <span id="ctl00_PageHeaderContentPlaceHolder_lblRegion">Product Name</span> <strong id="ctl00_PageHeaderContentPlaceHolder_divFiyat" class="price"> 749 € <small>

我试图从html源代码中获取价格 这是源代码的一部分

 <h1>
    <span id="ctl00_PageHeaderContentPlaceHolder_lblRegion">Product Name</span>
    <strong id="ctl00_PageHeaderContentPlaceHolder_divFiyat" class="price">
        749 €
        <small>
            2007 TL
            <small class="nightday">
                <span id="ctl00_PageHeaderContentPlaceHolder_lblNightDay">Un related detals</span></small></small>
    </strong>
</h1>

品名

749 €
2007 TL
与联合国有关的详情

正如您在这里看到的,它是非常指定的id。这是我的代码

 $Tour_Price ="/<span id=\"ctl00_PageHeaderContentPlaceHolder_divFiyat\" class=\"price\">(.*?)<\/span>/i";
        preg_match($Tour_Price , $Tur_Fiyat, $Result_Price);
        echo "<strong>Result:</strong>".$Result_Price[1];
$Tour_Price=“/(.*?)/i”;
赛前($Tour_Price,$Tur_Fiyat,$Result_Price);
回声“结果:”$Result\u Price[1];
我的代码在源代码的其他部分可以完美地工作。但价格并不是这样。 请发表意见。感谢所有感兴趣的人:)

您可以指定
尝试使用以下代码:

$Tour_Price ="/<strong id=\"ctl00_PageHeaderContentPlaceHolder_divFiyat\" class=\"price\">(.*?)<\/strong>/is";
preg_match($Tour_Price , $Tur_Fiyat, $Result_Price);
echo "<strong>Result:</strong>".$Result_Price[1];
$Tour\u Price=“/(.*)/is”;
赛前($Tour_Price,$Tur_Fiyat,$Result_Price);
回声“结果:”$Result\u Price[1];

注意:更改为
span
strong
{…}/i
{…}/is

为什么
preg\u match
?您是否知道DOMDocument
:?该标记看起来很可怕。那是SharePoint吗?您没有:ctl00_PageHeaderContentPlaceHolder_divFiyat和该span id。请检查eid的。JonatanRomer,我会复制/粘贴,但不会继续工作。不要使用正则表达式解析HTML。使用适当的HTML解析模块。您无法用正则表达式可靠地解析HTML,在这条路上您将面临悲伤和挫折。一旦HTML改变了您的预期,您的代码就会被破坏。有关如何使用已经编写、测试和调试过的PHP模块正确解析HTML的示例,请参阅。实际上,这行代码发生了更改。我必须使用的产品名称正是我的答案。将span键入到strong是可以的,但这不是问题所在。谢谢你提醒我“/是”,但还是不起作用。如果我用它试试,它对我很有效。