少し前に「jQueryでオンライン生成するt.cn新浪短縮URL」という記事を書きました。新浪微博の短縮URLインターフェースを呼び出したものですが、次第に短縮URLに興味を持つようになり、そこでいくつかの公開されている短縮URLインターフェースを探してみました。

今日は百度の短縮URLインターフェースについて説明します。以下では、私の経験した手順と完成版のコードを紹介します。(百度の短縮URLは一部のドメインしかサポートしておらず、具体的なルールはよく分かりません。この記事はあまり実用的ではなく、学習目的 בלבדです)

はじめに

まずは百度短縮URLのAPIリクエストURLです:http://dwz.cn/create.php

リクエスト方式は post による送信のみ対応しています。

リクエストパラメータは urlalias の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サービスを利用することをおすすめします。