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;