如何处理非常大的数组/ JS对象?

时间:2018-11-12 19:26:59

标签: php json curl

我有一个很大的JS对象,可以通过卷曲获得,我需要将其分解以进一步写入MYSQL。但是,当我尝试在前叉循环中进行遍历时,遇到了memory_size不足的问题。是否有任何选项可以在服务器上减少负载的情况下处理数组,而无需在php中增加内存大小?这是我的代码,但是不起作用

致命错误:耗尽了33554432字节的允许内存大小(尝试分配20480字节)

<?php
#ini_set('memory_limit', '-1');
    if( $curl = curl_init() ) {
    curl_setopt($curl, CURLOPT_AUTOREFERER, TRUE); 
    curl_setopt($curl, CURLOPT_HEADER, 0); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);  
    curl_setopt($curl,CURLOPT_URL,'http://img.combats.com/auction/dump.js');
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
    $out_shortinfo = curl_exec($curl);
    $json = json_decode(str_replace('var auction_dump=', '', $out_shortinfo), true);
    foreach ($json as $key=>$value) {
    if($key > 0)
        {
            echo $value['name'].' ';
            echo $value['txt'].' ';
            echo $value['_auc']['id'].'<br>';
        }
    }
    curl_close($curl);
  }
?>

1 个答案:

答案 0 :(得分:0)

尝试这个兄弟

        echo $value['name'].' ';
        echo $value['txt'].' ';
        echo $value['_auc']['id'].'<br>';
        @ob_flush(); @flush();