少し前に「jQueryでオンライン生成するt.cn新浪短縮URL」という記事を書きました。新浪微博の短縮URLインターフェースを呼び出したものですが、次第に短縮URLに興味を持つようになり、そこでいくつかの公開されている短縮URLインターフェースを探してみました。
今日は百度の短縮URLインターフェースについて説明します。以下では、私の経験した手順と完成版のコードを紹介します。(百度の短縮URLは一部のドメインしかサポートしておらず、具体的なルールはよく分かりません。この記事はあまり実用的ではなく、学習目的 בלבדです)
はじめに
まずは百度短縮URLのAPIリクエストURLです:http://dwz.cn/create.php
リクエスト方式は post による送信のみ対応しています。
リクエストパラメータは url と alias の2つです。1つ目のパラメータは長いURL(必須)、2つ目はカスタムURL(任意)です。
返されるデータ:json形式のデータです。
status = 0 の場合はエラーです。err_msg を確認するとエラー情報(UTF-8エンコード)を取得できます。
status = -1 の場合は成功です。生成された tinyurl が短縮URLです。
完成版コード
<?php
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,"http://dwz.cn/create.php");
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$data=array('url'=>'http://www.baidu.com/');
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
$strRes=curl_exec($ch);
curl_close($ch);
$arrResponse=json_decode($strRes,true);
if($arrResponse['status'] == 0)
{
echo iconv('UTF-8','GBK',$arrResponse['err_msg']);
}
echo $arrResponse['tinyurl'].; //输出短网址
?>
百度の短縮URLは新浪のものより使いやすいわけではないため、引き続き新浪の短縮URLサービスを利用することをおすすめします。