【发布时间】:2019-02-16 10:22:26
【问题描述】:
我正在尝试将我的数组打印为表格,但实际上它并没有真正在数组内循环,它只打印最后一个值
<?php
$url='http://myurl.com/';
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL, $url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
$html = curl_exec($curl);
;
$pro=array();
preg_match_all("/<td>[0-9]{1,3}(\.[0-9]{3})*.[0-9]+DA<\/td>",$html,$match);
$pro['prix']=$match['0'];
preg_match_all('!<td><a href=".*">\K(.+?(?=<\/a><\/td>))!',$html,$match);
$pro['nom']=$match['0'];
$currencies = array_combine($pro['nom'], array_chunk($pro['prix'], 2));
foreach ($currencies as $currency => list($sell, $buy)) {
$output = ' <td data-th="currency">'.$currency.'</td> <td data-th="sellprice">'.$sell.'</td> <td data-th="buyprice">'.$buy.'</td> ';
}
curl_close($curl);
?>
<table class="rwd-table">
<tr>
<th>Devises</th>
<th>Achat</th>
<th>Vente</th>
</tr>
<?php echo $output ?>
</table>
我希望看到所有 11 个值,但我只看到一个,它是最后一个 当我执行 var_dump 时,它显示得很好,并且正确打印了所有数组
**问题是我忘记了 $output 。 = 并在开始时创建空的 $output ='' 感谢您的帮助! 现在工作正常! **
【问题讨论】:
-
$output =使$output .=然后它将连接到该变量而不是覆盖它 -
痛苦的世界等待尝试使用正则表达式解析 HTML...考虑改用
DOMDocument / DOMXPath
标签: php arrays web-scraping