<?php
    header('Content-type:text/html; charset=UTF-8');
    set_time_limit(1200);
    //並列実行したいPHP

$params = "&prm_fa_chr=chr01&prm_fa_s=1&prm_fa_e=20000&prm_fa_tgt=1&prm_fa_flk=1&prm_fa_qual=20&prm_fa_dp=2&prm_fa_list=d49,d203,d75,d160,d33,d120,d144,d66,d111,d121,d68,d81,d185,d50,d48,d130,d136,d132,d99,d70,d139,d192,d76,d47,d72,d201,d149,d64,d119,d191,d110,d174,d54,d65,d113,d37,d143,d148,d63,d157,d150,d51,d189,d59,d83,d89,d165,d131,d77,d145,d117,d182,d96,d92,d95,d106,d118,d108,d60,d178,d55,d98,d80,d127,d171,d74,d107,d100,d134,d155,d62,d186,d31,d187,d116,d73,d158,d46,d175,d124,d194,d156,d138,d180,d67,d78,d85,d128,d86,d104,d56,d122,d193,d196,d129,d202,d38,d91,d151,d109,d103,d88,d162,d94,d87,d36,d198,d195,d61,d142,d181,d153,d90,d93,d41,d123,d58,d168,d53,d161,d126,d133,d57,d71,d166,d159,d42,d135,d105,d190,d152,d44,d154,d176,d200,d69,d199,d125,d45,d137,d102,d184,d84,d32,d29,d183,d101,d179,d97,d40,d204,d167,d188,d52,d197,d141,d172,d39,d173,d147,d164,d43,d177,d114,d30,d140,d35,d79,d146,d115,d163,d169,d112,d170,d34,d82&prm_fa_name=id&prm_fa_nameS=subvariety&prm_fa_ref=IRGSP-1.0&prm_fa_width=80&prm_fa_avd=0&prm_fa_p3prm=&prm_fa_Ns=0&prm_fa_DN=0&prm_type=a";

    $url_list = array(
        'https://tasuke2.dna.affrc.go.jp/tasuke_gwas_dev/bin/fasta.php.multi?pid=0'.$params,
        'https://tasuke2.dna.affrc.go.jp/tasuke_gwas_dev/bin/fasta.php.multi?pid=1'.$params,
        'https://tasuke2.dna.affrc.go.jp/tasuke_gwas_dev/bin/fasta.php.multi?pid=2'.$params,
        'https://tasuke2.dna.affrc.go.jp/tasuke_gwas_dev/bin/fasta.php.multi?pid=3'.$params,
	'https://192.168.56.174/tasuke_gwas_dev/bin/fasta.php.multi?pid=0'.$params,
        );
    //開始時間取得
    $time = time();
   
    //実行
    $res = fetch_multi_url($url_list);
   
    //結果出力
    echo '実行結果:<pre>';
    print_r($res);
    echo '</pre>';
   
    //実行時間
    echo '--<br />time:'.(time() - $time).' sec';
   
/**
* 複数URLを同時に取得する
*
* @param array $url_list URLの配列
* @param int $timeout タイムアウト秒数 0だと無制限
* @return array 取得したソースコードの配列
*/
function fetch_multi_url($url_list,$timeout=0) {
    $mh = curl_multi_init();
 
    foreach ($url_list as $i => $url) {
        $conn[$i] = curl_init($url);
        curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,1);
        curl_setopt($conn[$i],CURLOPT_FAILONERROR,1);
        curl_setopt($conn[$i],CURLOPT_FOLLOWLOCATION,1);
        curl_setopt($conn[$i],CURLOPT_MAXREDIRS,3);
       
        //SSL証明書を無視
        curl_setopt($conn[$i],CURLOPT_SSL_VERIFYPEER,false);
        curl_setopt($conn[$i],CURLOPT_SSL_VERIFYHOST,false);
        //タイムアウト
	$timeout = 0;
        if ($timeout){
            curl_setopt($conn[$i],CURLOPT_TIMEOUT,$timeout);
        }
        curl_multi_add_handle($mh,$conn[$i]);
    }
   
    //URLを取得
    //すべて取得するまでループ
    $active = null;
    do {
        $mrc = curl_multi_exec($mh,$active);
    } while ($mrc == CURLM_CALL_MULTI_PERFORM);
   
    while ($active and $mrc == CURLM_OK) {
        if (curl_multi_select($mh) != -1) {
            do {
                $mrc = curl_multi_exec($mh,$active);
            } while ($mrc == CURLM_CALL_MULTI_PERFORM);
        }
    }
   
    if ($mrc != CURLM_OK) {
        echo '読み込みエラーが発生しました:'.$mrc;
    }
   
    //ソースコードを取得
    $res = array();
    foreach ($url_list as $i => $url) {
        if (($err = curl_error($conn[$i])) == '') {
            $res[$i] = curl_multi_getcontent($conn[$i]);
        } else {
            echo '取得に失敗しました:'.$url_list[$i].'<br />';
        }
        curl_multi_remove_handle($mh,$conn[$i]);
        curl_close($conn[$i]);
    }
    curl_multi_close($mh);
   
    return $res;
}



