【问题标题】:php curl array handlingphp curl 数组处理
【发布时间】:2019-02-15 22:38:14
【问题描述】:

首先你好我目前正在从网站上抓取我国欧元和美元的当前价格值,以便以后使用它们来计算公司购买的产品的总价格值。

[prix] => 
Array ( 
[0] => 212,00 DA    //Sell price
[1] => 213.00 DA    // Buy price
[2] => 184,00 DA    //Sell price
[3] => 185,00 DA  ) //Buy price
[nom] => 
Array ( 
[0] => Euro (€)  name of [0 and 1] prix array
[1] => Dollar US ($)) name of [ 2 and 3] prix array 

我的实际问题是我想一次解析两个数组的信息 在表格中(如下所示):

货币名称 |出售 |购买 |

欧元 | 212,00 日 | 213,00 日

美元 | 184,00 日 | 185,00 日

<?php
    $url='http://myurl/';
    $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'];

        curl_close($curl);

【问题讨论】:

  • 您好!您能否展示一个实际 HTML 内容的代表性示例?另外,你能解释一下你当前的代码在做什么与你想要的不同吗?该 PHP 代码是否在第一个代码块中生成输出示例?
  • 您好,实际上我面临的问题是我无法将阵列分成两部分,一部分用于销售价格,另一部分用于购买价格,我无法将这两个阵列组合起来,因为数字行数不一样 我正在从网站上抓取我所在国家/地区的欧元和美元的当前价格值,以便以后使用它们来计算公司购买的产品的总价格值。

标签: php regex web-scraping


【解决方案1】:

您可以将值拆分为块并将它们与键组合。

$currencies = array_combine($pro['nom'], array_chunk($pro['prix'], 2));

然后迭代结果以构建您的表。

foreach ($currencies as $currency => list($sell, $buy)) {
    var_dump($currency, $sell, $buy);
    // add whatever HTML you want
}

【讨论】:

    猜你喜欢
    • 2017-10-13
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多