<?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
?>