<?php set_time_limit(60*60);//タイムアウト時間を60分に変更 ////////////////////////////////////////////////////////////////////////////////////////////// //検索条件 ////////////////////////////////////////////////////////////////////////////////////////////// //1.透かし検索⇒オルゾフ組検索 $search_base = "https://api.magicthegathering.io/v1/cards?contains=watermark&orderBy=name"; //2.日本語で「リリアナ」を含むカード名で検索(&orderBy=nameが使えない?) // $trg = 'リリアナ'; // $trg = urlencode($trg);//アルファベット以外は変換が必要 // $search_base = "https://api.magicthegathering.io/v1/cards?name=".$trg."&language=Japanese"; //3.イラストレーターがネネ・トーマスで検索 // $search_base = "https://api.magicthegathering.io/v1/cards?artist=N%C3%A9N%C3%A9%20Thomas&orderBy=name"; //4.フレーバーにサーペディアを含むカードを検索 // $search_base = "https://api.magicthegathering.io/v1/cards?flavor=Sarpadian&orderBy=name"; //5.サブタイプにthrullを含むカードを検索 // $search_base = "https://api.magicthegathering.io/v1/cards?subtypes=thrull&orderBy=name"; ////////////////////////////////////////////////////////////////////////////////////////////// //ページ数算出(100件/1ページ) ////////////////////////////////////////////////////////////////////////////////////////////// $search_contents = file_get_contents($search_base); //$http_response_headerに自動で格納されている function parseHeaders( $headers )//headersを扱いやすい用に整形する { $head = array(); foreach( $headers as $k=>$v ) { $t = explode( ':', $v, 2 ); if( isset( $t[1] ) ) $head[ trim($t[0]) ] = trim( $t[1] ); else { $head[] = $v; if( preg_match( "#HTTP/[0-9\.]+\s+([0-9]+)#",$v, $out ) ) $head['reponse_code'] = intval($out[1]); } } return $head; } $t_haed = parseHeaders($http_response_header);//http_response_headerは自動で格納されている $page_size = ceil($t_haed["Total-Count"]/100); print '検索条件'; print_r($search_base); print '<br>'; print '検索結果件数(フィルタ前)'; print_r($t_haed["Total-Count"]); print '<br>'; print'<table>'; ////////////////////////////////////////////////////////////////////////////////////////////// //検索と検索結果表示 ////////////////////////////////////////////////////////////////////////////////////////////// if ($page_size == 0) { print '検索結果なし'; } else { $cnt = 1; $temp = "";//同一名をまとめるための変数 $pageno = 1; for($pageno = 1;$pageno<=$page_size;$pageno++) { usleep(2*1000*1000);//気持ち遅延2秒 ob_flush(); flush();//少しずつ検索結果を表示 //pageを1から順に検索結果を表示していく $search_api = $search_base."&page=".$pageno; $search_contents = file_get_contents($search_api); $search_json = json_decode($search_contents,true); if(empty($search_json["cards"]) == TRUE) { print '検索結果なし'; } else { foreach($search_json["cards"] as $k => $data) { $trgstr = "orzhov";//オルゾフ組検索 //if(1)//透かしの条件でフィルタフィルタしない if(strcmp($trgstr,$data["watermark"]) == 0)//透かしの条件でフィルタする { //if(1)//同一カードでも横に並べない if(strcmp($temp,$data["name"]) != 0)//同一カードは横に並べる&orderBy=nameが必要 { print'</table>'; print '<hr>'; print'<table border="1">'; print "No.".$cnt."[".$data["name"]."]"; print '<br>'; $cnt += 1; } print'<td>'; print "[".$data["setName"]."]"; print '<br>'; //画像の表示 if(empty($data["imageUrl"]) == TRUE) { $pic = "<img src=\" \" width=\"223\" height=\"310\">";//画像なし空白表示 } else { $pic = "<img src=\"".$data["imageUrl"]."\">"; usleep(0.5*1000*1000);//気持ち遅延0.5秒 } print ($pic); print'</td>'; $temp = $data["name"];//同一名チェック用に保存 } } } } } //http://localhost/mtgapitest.php ?>