卷曲 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
。)
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
。)