卷曲 php - 如果条件

Curl php - if condition

HTML

<select id="myid">
    <option value="1" data-name="text 1" data-price="5">Text 1</option>
    <option value="2" data-name="text 2" data-price="10">Text 2</option>
</select>

我下面的代码工作正常,但显示所有 "data-price" 和 TagName "option"。我只想抢一个特定的价格。所以我想添加这样的内容:

<?php
$doc = new DOMDocument();
@$doc->loadHTMLFile('https://example.com');
$optionNodes = $doc->getElementById('myid')->getElementsByTagName('option');
foreach($optionNodes as $optionNode) {
// if $optionNode->getAttribute('data-name') = "text 2"
     echo $optionNode->getAttribute('data-price') . '<br/>';
}
?>

如有任何帮助,我们将不胜感激。

谢谢

if ($optionNode->getAttribute('data-name') == "text 2") {
    echo $optionNode->getAttribute('data-price') . '<br/>';
}

只需在您的代码中添加以下条件。

 <?php
    $doc = new DOMDocument();
    @$doc->loadHTMLFile('https://example.com');
    $optionNodes = $doc->getElementById('myid')->getElementsByTagName('option');
    foreach($optionNodes as $optionNode) {
       if($optionNode->getAttribute('data-price') == "10"){
         echo $optionNode->getAttribute('data-price') . '<br/>';
       }
    }
    ?>

你可以试试:

 echo $optionNode->getAttribute('data-price') == "text 2" ? $optionNode->getAttribute('data-price') . '<br/>' : '';

XPath 助你一臂之力。

<?php
$doc = new DOMDocument();
@$doc->loadHTMLFile('https://example.com');
$xp=new DOMXPath($doc);
echo $xp->query("//option[@value='2']")->item(0)->getAttribute("data-price");
  • 获取具有属性 value="2" 的第一个元素并获取它的 data-price 属性。

你也可以这样做

echo $xp->query("//option[@data-name='text 2']")->item(0)->getAttribute("data-price");

通过 data-name 获取它,或者您甚至可以

echo $xp->query("//option[text()='Text 2']")->item(0)->getAttribute("data-price");

根据文本内容获取,甚至

echo $xp->query("//option[contains(text(),'Text 2')]")->item(0)->getAttribute("data-price");

根据部分文本内容获取它(这将获取任何 option 元素,该元素在其文本内容的任何位置都有 Text 2。)