Example #1
0
 function getTenki($areaCode, $skinCode, $apiCode)
 {
     $serverId = 's054';
     // サーバーID
     $userDirectory = 'd679dcd0-8369f02b-b92e3c5d-70359b7a';
     // ユーザーディレクトリ
     $apis = array('4' => array('label' => '乾燥肌注意報', 'directory' => 'daily-dry-comment', 'skin' => true, 'hair' => false), '6' => array('label' => '日焼け&シミ', 'directory' => 'daily-sunburn-comment', 'skin' => true, 'hair' => false));
     $skins = array('1' => array('label' => '敏感肌'), '2' => array('label' => '乾燥肌'), '3' => array('label' => '脂性肌'), '4' => array('label' => '混合肌'));
     $apiDirectory = $apis[$apiCode]['directory'];
     $uri = "http://{$serverId}.b-10.net/v1/{$userDirectory}/beauty/{$apiDirectory}/?area={$areaCode}";
     $uri .= "&skin={$skinCode}";
     //var_dump($uri);
     $dom = new DOMDocument();
     $http = new HttpSample();
     $http->setTimeout(7);
     // タイムアウトまでの時間を7秒にセット
     $success = $http->get($uri);
     if ($success) {
         $success = $dom->loadXml($http->getRawdata());
     }
     // レスポンスの表示
     $comment = '';
     // 予報コメント
     $message = '';
     // 予報コメントが利用できない場合の表示メッセージ
     $commentAvailable = false;
     // 予報のコメントが利用できるか否か
     if (!$success) {
         // リクエストに失敗した場合
         $statusCode = $http->getStatusCode();
         switch ($statusCode) {
             case 400:
             case 500:
                 // APIリクエスト形式が正しくない、もしくはメンテナンス中
                 break;
             default:
                 // APIリクエスト形式以外の理由で
                 break;
         }
         $message = '予報を取得できません。';
     } else {
         // リクエストに成功した場合、コンテンツの取り出しを試みます。
         $xpath = new DOMXPath($dom);
         $queryForecasts = '/announce/forecast';
         $forecasts = $xpath->query($queryForecasts);
         if ($forecasts->length == 0) {
             // forecast要素がない場合
             $message = '予報は発表されていません。';
         } else {
             $forecast = $forecasts->item(0);
             // content 要素を検索
             $query = 'content';
             $result = $xpath->query($query, $forecast);
             if ($result->length == 0) {
             } else {
                 $content = $result->item(0);
                 // content 要素から comment要素(美容コメント)を取得
                 $query = 'name';
                 $result = $xpath->query($query, $content);
                 $forecastName = $result->item(0)->textContent;
                 $query = 'level';
                 $result = $xpath->query($query, $content);
                 $warnLevel = $result->item(0)->textContent;
                 $warnLevelValue = $result->item(0)->getAttribute('value');
                 $query = 'star';
                 $result = $xpath->query($query, $content);
                 $warnStar = $result->item(0)->textContent;
                 $query = 'comment';
                 $result = $xpath->query($query, $content);
                 $comment = $result->item(0)->textContent;
                 $commentAvailable = true;
             }
         }
     }
     $ret['comment'] = $comment;
     $ret['level'] = $warnLevelValue;
     return $ret;
 }
Example #2
0
<?php

$uri = 'http://s054.b-10.net.b-10.net/v1/d679dcd0-8369f02b-b92e3c5d-70359b7a/beauty/daily-hairstyle-comment/?area=43';
$http = new HttpSample();
$http->setTimeout(7);
// タイムアウトまでの時間を7秒にセット
$success = $http->get($uri);
if ($success) {
    $success = $dom->loadXml($http->getRawdata());
}
var_dump($success);
/**
 * HTTP通信のためのサンプルクラス。
 * タイムアウトまでの秒数を設定したHTTP通信を行うためのサンプルクラスです。
 * モジュール libcurl を要求します。
 * @author Craid Co.Ltd.
 */
class HttpSample
{
    /**
     * @var $timeout int
     */
    private $timeout = 10;
    /**
     * @var $rawdata string
     */
    private $rawdata = null;
    /**
     * @var $statusCode int
     */
    private $statusCode = null;