0

4G NetworkHTMLページの外部ソースから実際の行全体を抽出しようとしましLTE 700 MHz Class 17 / 1700 / 2100 - for AT&Tたが、他の状況では、または他のものとはもっと異なる可能性がありますLTE 850 / 900 / 1700 / 2100

私の結果のタイトルは常に stable( 4G Network) で<td class="ttl">あり、結果は<td class="nfo">クラスの下にありますが、どちらも下にあるため、タイトルに基づいて下にあるコンテンツを読むことができる<tr>と思いますttl classnfo class

これは、外部 html のソースです。

<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 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 700 MHz Class 17 / 1700 / 2100 - for AT&amp;T</td>
</tr><tr>
<td class="ttl"><a href="glossary.php3?term=sim">SIM</a></td>
<td class="nfo">Micro-SIM</td>
</tr><tr>
<td class="ttl"><a href="#" onclick="helpW('h_year.htm');">Announced</a></td>
<td class="nfo">2012, October</td>
</tr>

これは私が使用しているコードです:

<?php
include_once('/simple_html_dom.php');
$dom = file_get_html("http://www.externalsite.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;
$bresult = explode(",", $result);
echo $bresult[0];
} 
?>

そして、私のコードの結果はこれです:

CDMA 800 / 1900 GSM 900 / 1800 / 1900 HSDPA 2100 CDMA2000 1xEV-DO LTE 700 MHz Class 17 / 1700 / 2100 - for AT&T Micro-SIM 2012, October

4

3 に答える 3

1

4Gネットワ​​ークを取得したいだけの場合は、次のようにする必要があります。

<?php
include_once('/simple_html_dom.php');
$dom = file_get_html("http://www.gsmarena.com/pantech_vega_no_6-5268.php");
foreach ($dom->find('tr') as $node) {
    if (is_a($node->children(0), 'simple_html_dom_node')) {
        if ($node->children(0)->plaintext == "4G Network") {
            echo $node->children(1)->plaintext;
        }
    }
}
?>
于 2013-02-02T00:04:11.613 に答える
0

最初の結果が欲しいだけなので、それを見つけたら停止して結果を得ることができます

foreach ($dom->find('td[class=nfo]') as $node){
   $result = $node->innertext;
   break;
} 
于 2013-02-01T22:23:15.117 に答える
0

最初の結果だけが必要なときに、すべての結果をループしています。したがって、ループして最初の結果を取得しないでください。

$results = $dom->find('td[class=nfo]');
$node = reset($results);    // get the first element of the array
//the rest of your code:
$result = $node->innertext;
// etc.
于 2013-02-01T22:18:57.013 に答える