如何拆分长时间运行的PHP脚本

时间:2017-11-19 10:47:00

标签: php arrays

我使用simple_html_dom作为scrape页面网站,问题是如果我想要刮掉很多页面,就像需要花费很长时间(5-30分钟)才能完成的500个url页面,那就是我的服务器错误500 < /强>

我所做的一些事情是:

  1. 尝试使用set_time_limit
  2. 设置ini_set('max_execution_time')
  3. 添加延迟()时间
  4. 我很多人从stackoverflow中读取使用cronjob来拆分Long Running PHP Scripts,我的问题是如何拆分长时间运行的PHP脚本?你能给出最好的分裂方法吗?你可以给我一步一步的脚本,因为我是初学者。

    关于我的程序,我有两个文件: 文件1,我有超过500个链接网址的数组 文件2,此文件具有处理scrape的功能

    示例这是文件1:

    set_time_limit(0);
    ini_set('max_execution_time', 3000); //3000 seconds = 30 minutes
    $start = microtime(true); // start check render time page
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    include ("simple_html_dom.php");
    include ("scrape.php");
    
    $link=array('url1','url2','url3'...);
    array_chunk($link, 25); // this i try to split for 25 but not working
    $hasilScrape = array();
    for ( $i=1; $i<=count($link); $i++){
        //this is the process i want to call function get_data to scrape
        $hasilScrape[$i-1] = json_decode(get_data($link[$i-1]), true);
    }
    
    $filename='File_Hasil_Scrape';
    $fp = fopen($filename . ".csv", 'w');
    foreach ($hasilScrape as $fields) {
        fputcsv($fp, $fields);
    }
    fclose($fp);
    

    我想我可以拆分25阵列的数组链接,谢谢我暂停或让它停止临时(不要延迟,因为我一直尝试它没用无用)的散文再次运行,请你告诉我,谢谢这么多。

0 个答案:

没有答案