簡単なAPIをつくります。今回やるのはurlを入力するとページのタイトルを返すという超簡単なものです。他のサイトにリンクをはるときにできればタイトルを変えずにそのままにしたいのですが、こんなときに役に立つかなと考えて作成することにしました。

まずphpファイルを作成します。json形式の文字列をPOSTすればurlからHTMLを取得、それを解析してページのタイトルを返します。

01.php

HTMLからタイトルタグを抜き出す方法ですが、よく以下のようなサンプルコードがあります。

たいていの場合はこれでうまくいきます。しかしタイトルタグが以下のようになっているとうまくいきません。

そこで上記のような方法で取得しています。

これに①のようなJsonTEXTを作成してPostすると②のような結果が返ってきます。

実際に使うときはweb上やデスクトップアプリで使うことが多いので、以下のようなHTMLを作成します。URLを入力して送信ボタンを押せばタイトルが取得できます。またデバッグも兼ねてPOSTしたJSON形式の文字列も変えさせます。

もし存在しないURLやURL以外のものを入力したときは”status” : “error”が返ってくるのでエラーである旨を表示します。

ローカルサーバーで実験してうまく動作することを確認したらサーバーにアップすればよいのですが、同じドメインでない場合は

クロスオリジン要求をブロックしました: 同一生成元ポリシーにより、https://XXXX/XXX/01.php にあるリモートリソースの読み込みは拒否されます (理由: CORS 要求が成功しなかった)。ステータスコード: (null)

と表示されてうまくいきません。その場合は01.phpをアップロードしたディレクトリに以下のように記述した.htaccessを設置します。

これでうまくいくはずです。

動作確認はこちら