在PHP中使用XPath循环
我有这个html表格:在PHP中使用XPath循环,php,loops,dom,xpath,Php,Loops,Dom,Xpath,我有这个html表格: <tbody> <tr class="r1"> <td class="l rbrd"> <img class="spr2 sport sp1" align="absmiddle" src="/s.gif"> </td> <td class="l rbrd">19/4 18:30</td> <td class
<tbody>
<tr class="r1">
<td class="l rbrd">
<img class="spr2 sport sp1" align="absmiddle" src="/s.gif">
</td>
<td class="l rbrd">19/4 18:30</td>
<td class="l rbrd">
<a title="CHELSEA FC - SUNDERLAND" href="/chelsea-fc-vs-sunderland/e/4509648/" target="_blank">CHELSEA FC - SUNDERLAND</a>
</td>
<td class="c w40">
<span class="o">1,21</span>
<span class="p">91,8%</span>
</td>
</tr>
您可以尝试以下方法
<?php
$url = 'http://www.oxybet.ro/pariu/external/betfair-volumes.htm';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$document = new DOMDocument();
$document->loadHTML($response);
$xpath = new DOMXPath($document);
$expression = '/html/body/div/div/div[2]/div/div/table/tbody/tr';
$rows = $xpath->query($expression);
$results = array();
foreach ($rows as $row) {
$result = array();
$expression = './td[2]';
$result['date'] = $xpath->query($expression, $row)->item(0)->nodeValue;
$expression = './td[3]/a';
$result['teams'] = $xpath->query($expression, $row)->item(0)->nodeValue;
$expression = './td[4]/span';
$result['1'] = $xpath->query($expression, $row)->item(0)->nodeValue;
$expression = './td[4]/span[2]';
$result['1 volumes'] = $xpath->query($expression, $row)->item(0)->nodeValue;
array_push($results, $result);
}
var_dump($results);
不发布重复项的可能重复项。这只会导致人们加倍努力。
[0] => Array
(
[date] => 18:30 19/4
[teams] => CHELSEA FC - SUNDERLAND
[1] => 1,21
[1 volumes] => 91,8%
)
<?php
$url = 'http://www.oxybet.ro/pariu/external/betfair-volumes.htm';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$document = new DOMDocument();
$document->loadHTML($response);
$xpath = new DOMXPath($document);
$expression = '/html/body/div/div/div[2]/div/div/table/tbody/tr';
$rows = $xpath->query($expression);
$results = array();
foreach ($rows as $row) {
$result = array();
$expression = './td[2]';
$result['date'] = $xpath->query($expression, $row)->item(0)->nodeValue;
$expression = './td[3]/a';
$result['teams'] = $xpath->query($expression, $row)->item(0)->nodeValue;
$expression = './td[4]/span';
$result['1'] = $xpath->query($expression, $row)->item(0)->nodeValue;
$expression = './td[4]/span[2]';
$result['1 volumes'] = $xpath->query($expression, $row)->item(0)->nodeValue;
array_push($results, $result);
}
var_dump($results);