首页 > 解决方案 > 我如何处理非常大的数组/JS 对象?

问题描述

我有一个非常大的 JS 对象,我可以通过 curl 获取,我需要将其拆分以进一步写入 MYSQL。但是当我尝试使用 forech 循环遍历它时,我遇到了 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);
  }
?>

标签: phpjsoncurl

解决方案


试试这个兄弟

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

推荐阅读