開発環境:PHP
利用API:電脳卸Webサービス
以下ソース
----- こ こ か ら -----
<?php
//EUC-JPへ文字コード変換
function convert($str) {
return mb_convert_encoding($str, 'EUC-JP', 'auto');
}
?>
<?php
//キーワードをEUCからUTF-8へ文字コード変換
$sword = mb_convert_encoding('うら', UTF-8', 'EUC-JP');
//電脳卸のスクリプトURL作成
$xml_url = 'http://webservice.d-064.com/get_tag.php';
$xml_url .= '?hid=xxxxxx';
$xml_url .= '&email=xxx@aaa.com';
$xml_url .= '&sword='.$sword;
$xml_url .= '&type=heavy';
//$xml_url .= '&page=1';
//$xml_url .= '&category_id=0001';
//$xml_url .= '&category_depth=1';
//XMLデータをパース?
$xml = simplexml_load_file($xml_url);
echo '<html>';
echo '<body>';
echo '検索結果:'.convert($xml->TotalResults).'<br>';
echo 'トータルページ数'.convert($xml->TotalPages).'<br>';
echo '<br>';
//Detailsオブジェクトの数だけ繰り返し表示
foreach($xml->Details as $Details)
{
echo '商品名'.convert($Details->ProductName).'<br>';
echo '<img src='.convert($Details->ImageUrlMedium).'>';
echo '値段'.convert($Details->Price).'<br>';
//商品説明を改行で区切って表示
$ItemDetail = preg_split('/\n/', convert($Details->ItemDetail));
echo '商品説明';
foreach($ItemDetail as $item)
{
echo $item.'<br>';
}
echo '<br>';
echo '<hr>';
}
echo '</body>';
echo '</html>';
?>
----- こ こ ま で -----
今回はPHPのsinpleXMLを使いました。
sinpleと冠してあるだけあってホントシンプル。
XMLデータをsimplexml_load_file()に食わせるだけ。
これだけでXMLオブジェクトが出来ます。
例えば。
<addressbook>
<name>
<familyname>一郎</familyname>
<lastname>田中</lastname>
<nickname>いっちー</nickname>
</name>
<phone>
<homephone>0312345678</homephone>
<mobilephone>09012345678</mobilephone>
</phone>
<address>○○県××市△△町1-2-3</address>
<mailaddress>wktk@2ch.orz</mailaddress>
<addressbook>
てなXMLデータがあったとします。
こいつをオブジェクト化してやると、オブジェクト配列として各タグ内容が取得できるっつースンポーですわ。
$addressbook->name->familyname;
てな感じで。
これの表示内容はもちろん「一郎」ですわな。
上記のソースにある電脳卸のURLは、引数に応じてXMLを生成するので、その内容をsimpleXMLで食う、と。
これだけ。
いやぁ、簡単簡単。
さて、何をつくろうかな~。
利用API:電脳卸Webサービス
以下ソース
----- こ こ か ら -----
<?php
//EUC-JPへ文字コード変換
function convert($str) {
return mb_convert_encoding($str, 'EUC-JP', 'auto');
}
?>
<?php
//キーワードをEUCからUTF-8へ文字コード変換
$sword = mb_convert_encoding('うら', UTF-8', 'EUC-JP');
//電脳卸のスクリプトURL作成
$xml_url = 'http://webservice.d-064.com/get_tag.php';
$xml_url .= '?hid=xxxxxx';
$xml_url .= '&email=xxx@aaa.com';
$xml_url .= '&sword='.$sword;
$xml_url .= '&type=heavy';
//$xml_url .= '&page=1';
//$xml_url .= '&category_id=0001';
//$xml_url .= '&category_depth=1';
//XMLデータをパース?
$xml = simplexml_load_file($xml_url);
echo '<html>';
echo '<body>';
echo '検索結果:'.convert($xml->TotalResults).'<br>';
echo 'トータルページ数'.convert($xml->TotalPages).'<br>';
echo '<br>';
//Detailsオブジェクトの数だけ繰り返し表示
foreach($xml->Details as $Details)
{
echo '商品名'.convert($Details->ProductName).'<br>';
echo '<img src='.convert($Details->ImageUrlMedium).'>';
echo '値段'.convert($Details->Price).'<br>';
//商品説明を改行で区切って表示
$ItemDetail = preg_split('/\n/', convert($Details->ItemDetail));
echo '商品説明';
foreach($ItemDetail as $item)
{
echo $item.'<br>';
}
echo '<br>';
echo '<hr>';
}
echo '</body>';
echo '</html>';
?>
----- こ こ ま で -----
今回はPHPのsinpleXMLを使いました。
sinpleと冠してあるだけあってホントシンプル。
XMLデータをsimplexml_load_file()に食わせるだけ。
これだけでXMLオブジェクトが出来ます。
例えば。
<addressbook>
<name>
<familyname>一郎</familyname>
<lastname>田中</lastname>
<nickname>いっちー</nickname>
</name>
<phone>
<homephone>0312345678</homephone>
<mobilephone>09012345678</mobilephone>
</phone>
<address>○○県××市△△町1-2-3</address>
<mailaddress>wktk@2ch.orz</mailaddress>
<addressbook>
てなXMLデータがあったとします。
こいつをオブジェクト化してやると、オブジェクト配列として各タグ内容が取得できるっつースンポーですわ。
$addressbook->name->familyname;
てな感じで。
これの表示内容はもちろん「一郎」ですわな。
上記のソースにある電脳卸のURLは、引数に応じてXMLを生成するので、その内容をsimpleXMLで食う、と。
これだけ。
いやぁ、簡単簡単。
さて、何をつくろうかな~。