读取多个url内容(file_get_contents或curl_exec)导致我的脚本的x循环

时间:2017-06-22 15:56:55

标签: php codeigniter curl file-get-contents

我在线上服务器(域名网站)上的Codeigniter,PHP 7中运行脚本..从此URL读取的文本数次: http://finance.yahoo.com/d/quotes.csv?s=FTSEMIB.MI&f=d1ohgl1vs

仅在s =(股票代码)

中进行更改

我的问题是如果我读了x URL,我的脚本就会读完所有的URL(符号) 但它在不规则的x循环循环中重启很多次。我没有理解这种行为。

max_execution_time是1500.没有错误出现,很多时候我只得到一个空白页。

我在codeigniter / controller中的脚本:

 private function _get_current_yahoo_data($stock_symbol) {

    $url = 'http://download.finance.yahoo.com/d/quotes.csv';
    // ---- Stock Symbol ----
    $url.= "?s=".$stock_symbol;
    $url.= "&f=d1ohgl1vs"; 

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    //curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $content = curl_exec($ch);
    curl_close($ch);    

    return $content;
 }  


 public function update_current_stocks_data() {

    $output = '';

    $import_date = date('Y-m-d H:i:s');
    $s1 = time();
    $data = $this->data;

    $stocks = $data['stocks'];

    foreach($stocks as $s) {

        $id_stock = $s->id;


        $stock_symbol = $s->symbol;

        $p1 = time();
        $raw_quote_data = $this->_get_current_yahoo_data($stock_symbol);
        $p2 = time();

        $output.= $id_stock.' ';
        $output.= ' __ Time: '.($p2 - $p1).' seconds<br>';;


    }


    $s2 = time();

    $output.= '<br>Execution Time: '.($s2 - $s1).' seconds';

    $this->stock_model->log($import_date, $output);

    $output.= '<br>';
    $output.= strlen($output);
    $data['output'] = $output;
    $this->load->view("simple_view", $data);

}   

我正在查看我的日志表(从功能日志中填充),并且有几个日志行只启动一次脚本!

每个脚本大约需要100秒才能获得259个股票 如果我减少库存清单,例如230没有问题,脚本只运行一次。有趣的是,如果我每次阅读每259个股票脚本循环几次。

0 个答案:

没有答案