Parallax Image

Cutls Code Archives


SNZ 2016

Cutls API ver.2

カテゴリ:Code Archives, PHP 投稿日:2016年3月12日

おはようございます。
昔に作ったもはやAPIとさえ言えないCutls APIがVer.2になりAPIとしてそれなりに使えるようになりました。
リクエストはCutls APIを見ればわかりますので仕組みを簡単に紹介します。文字のエンコードはUTF-8となっています。Cutls POST APIはそのままPOSTされたものを同じ手順でリンク化しJSONにして状態とリンクを送るものです。Cutls GET APIは前述のPHP Simple HTML DOM Parserを使って既存のHTMLファイルから抜き出しているだけです。直接ソースから取り出している訳ではありませんので、そんなに速くもないです。
本当はアクセスURLをJSONファイルにしたかったのですが、そうすると.htaccessをいじらないといけないので今回はPHPファイルにheaderを付けてJSONにしました。つまり

header('Access-Control-Allow-Origin: *');
header("Content-Type: application/json; charset=utf-8");

と書いています。Access-Control-Allow-Originは外部からのJSONへのアクセスを許可するために必須なものです。
ついでにPHPのcURLでPOSTする例を・・・ファイル名が表示されます。

$text="<文章入力>";
$post = array(
    'sentence' => $text
);
$curl=curl_init();
curl_setopt($curl, CURLOPT_URL, "http://cutls.com/cutls-post.php");
curl_setopt($curl,CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
curl_setopt($curl,CURLOPT_RETURNTRANSFER, TRUE);

$response= curl_exec($curl);
$resp = json_decode($response, true); 
$file=$resp["filename"];
echo $file;

お次はfile_get_contentsで

$text="<文章入力>";
$data = array(
    'sentence' => $text
);
$url="http://cutls.com/cutls-post.php"
function http_post ($url, $data)
{
  $data_url = http_build_query ($data);
  $data_len = strlen ($data_url);
 
  return array (
        'content'=>  file_get_contents (
            $url,
            false,
            stream_context_create (
              array ('http' =>
                  array (
                      'method'=>'POST',        
                      'content'=>$data_url)
                  )
              )
            ),
      'headers'=> $http_response_header
  );
}
 $results = http_post($url, $data);
$result=$results[content];
$resp=json_decode($result);
$file=$resp["filename"];
echo $file;