gpt4 book ai didi

php - 从外部 html 源自定义对象读取

转载 作者:行者123 更新时间:2023-11-28 01:59:52 25 4
gpt4 key购买 nike

我在从外部 html 源读取时遇到问题 我只想读取我的案例“HSDPA 2100”中的自定义对象但我的实际代码是从外部源读取所有 nfo 类。

一段外部html:

<table cellspacing="0">
<tbody><tr>
<th rowspan="8" scope="row">General</th>
<td class="ttl"><a href="network-bands.php3">2G Network</a></td>
<td class="nfo">CDMA 800 / 1900 </td>
</tr><tr>
<td class="ttl">&nbsp;</td>
<td class="nfo">GSM 850 / 900 / 1800 / 1900 </td>
</tr>
<tr>
<td class="ttl"><a href="network-bands.php3">3G Network</a></td>
<td class="nfo">HSDPA 2100 </td>
</tr>
<tr>
<td class="ttl">&nbsp;</td>
<td class="nfo">CDMA2000 1xEV-DO </td>
</tr>
<tr>
<td class="ttl"><a href="network-bands.php3">4G Network</a></td>
<td class="nfo">LTE 800 </td>
</tr>
<tr>
<td class="ttl"><a href="glossary.php3?term=sim">SIM</a></td>
<td class="nfo">Mini-SIM</td>
</tr><tr>
<td class="ttl"><a href="#" onclick="helpW('h_year.htm');">Announced</a></td>
<td class="nfo">2013, January</td>
</tr>
<tr>
<td class="ttl"><a href="#" onclick="helpW('h_status.htm');">Status</a></td>
<td class="nfo">Coming soon. Exp. release 2013, February</td>
</tr>
</tbody></table><table cellspacing="0">
<tbody><tr>
<th rowspan="2" scope="row">Body</th>
<td class="ttl"><a href="#" onclick="helpW('h_dimens.htm');">Dimensions</a></td>
<td class="nfo">-</td>
</tr><tr>
<td class="ttl"><a href="#" onclick="helpW('h_weight.htm');">Weight</a></td>
<td class="nfo">&nbsp;</td>
</tr>

</tbody></table><table cellspacing="0">
<tbody><tr>
<th rowspan="4" scope="row">Display</th>
<td class="ttl"><a href="glossary.php3?term=display-type">Type</a></td>
<td class="nfo">TFT capacitive touchscreen, 16M colors</td>
</tr><tr>
<td class="ttl"><a href="#" onclick="helpW('h_dsize.htm');">Size</a></td>
<td class="nfo">1080 x 1920 pixels, 5.9 inches (~373 ppi pixel density)</td>
</tr>
<tr>
<td class="ttl"><a href="glossary.php3?term=multitouch">Multitouch</a></td>
<td class="nfo">Yes</td>
</tr>
<tr><td class="ttl">&nbsp;</td><td class="nfo">- Flux UX UI</td>

我正在尝试使用这段代码:

  <?php
include_once('/simple_html_dom.php');
$dom = file_get_html("http://www.site.com/pantech_vega_no_6-5268.php");
// alternatively use str_get_html($html) if you have the html string already...
foreach ($dom->find('td[class=nfo]') as $node)
{
$result = $node->innertext;
$price = explode(",", $result);
echo $price[0];
}
?>

我收到了:CDMA 800/1900 GSM 850/900/1800/1900 HSDPA 2100 CDMA2000 1xEV-DO LTE 800 Mini-SIM2013即将推出。 Exp。 r...等

我想要的是 HSDPA 2100 但对于其他型号的手机,值可以是 HSDPA 1900 或其他并且 HSPDA 将始终稳定且首先。

最佳答案

所有 td 都具有相同的类名“nfo”,您循环遍历所有元素,因此获得的结果符合预期。

如果你想要的数据总是位于第三行,你可以填充一个数组而不是获取一个变量,然后获取第三个值。像这样 $result[2]

更新:如果 HSDPA 始终存在,只需检查一下即可。

     <?php
include_once('/simple_html_dom.php');
$dom = file_get_html("http://www.site.com/pantech_vega_no_6-5268.php");
// alternatively use str_get_html($html) if you have the html string already...
foreach ($dom->find('td[class=nfo]') as $node)
{
$result = $node->innertext;
if (strpos($result, 'HSDPA') === false)
{
continue;
}
$price = explode(",", $result);
echo $price[0];
break;
}
?>

关于php - 从外部 html 源自定义对象读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14571961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com