欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

谷歌,bit.ly,is.gd,x.co网址缩短

程序员文章站 2022-04-30 14:05:23
...




1. [代码][PHP]代码

<?php
if(!empty($_GET["u"]) && strlen($_GET["u"])>11 ) //get the longurl,如果长度很短,也没用必要压缩
{
$url = $_GET["u"];
if (filter_var($url, FILTER_VALIDATE_URL,FILTER_FLAG_HOST_REQUIRED))
 {
$longurl=urlencode($url);
//begin bitly
$login="helong"; //bitly login name
$apikey="R_521dd354f25761aa816fb2317c5cc26f"; //bitly apikey http://www.php.cn/
$format="txt"; //bitly api format
$bitly = 'http://api.bit.ly/v3/shorten?longUrl='.$longurl.'&login='.$login.'&apiKey='.$apikey.'&format='.$format;
$bitly = file_get_contents($bitly);
$bitly=trim($bitly);
echo $bitly;
echo "<br/>";
//begin isgd
$isgd='http://is.gd/create.php?format=simple&url='.$longurl;
$isgd = file_get_contents($isgd);
$isgd=trim($isgd);
echo $isgd;
echo "<br/>";
//begin google
include('GAPIClass.php');
$objAPI = new GAPIClass('AIzaSyBiZuNRs81SA5VfPk8W4JtAH2B49hzEPrE');
$google = $objAPI->shorten($url);
$google=trim($google);
echo $google; //print goo.gl result
echo "<br/>";
//begin x.co
$xco='http://x.co/Squeeze.svc/text/9398242565bd41a384ae959cce109604?url='.$longurl;
//http://www.php.cn/  http://www.php.cn/{apikey}?url=
$xco = file_get_contents($xco);
$xco=trim($xco);
echo $xco;
echo "<br/>";
//end x.co
}
else
echo "亲,您输入的网址不对哦!";//sorry,something wrong with your url
}
?>
<form id="form1" name="form1" method="get" action="index.php">
<input type="text" name="u" />
<input type="submit"  value="Short it" />
</form>

2. [代码]GAPIClass.php

<?php
/**
 * Copyright (c) 2011 http://www.php.cn/
 * @package    GAPIClass
 * @author	   Vijay Joshi
 * @link       http://www.php.cn/
 * @copyright  Copyright (c) 2011 GAPIClass (http://www.php.cn/)
 * @version    1.0.0, 2011-01-21
 */
class GAPIClass
{
	private $_apiKey;
	public $error;
	public $keyWarning = true;
	public function __construct($key = NULL)
	{
		$this->_apiKey = $key;
	}
	public function shorten($longUrl)
	{
		$postData = array('longUrl' => $longUrl);
		if(!is_null($this->_apiKey))
		{
			$postData['key'] = $this->_apiKey;
		}
		$jsonData = json_encode($postData);
		$curlObj = curl_init();
		curl_setopt($curlObj, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url');
		curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
		curl_setopt($curlObj, CURLOPT_HEADER, 0);
		curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
		curl_setopt($curlObj, CURLOPT_POST, 1);
		curl_setopt($curlObj, CURLOPT_POSTFIELDS, $jsonData);
		$response = curl_exec($curlObj);
		curl_close($curlObj);
		$json = json_decode($response);
		if($this->hasErrors($json))
		{
			return false;
		}
		else
		{
			return $json->id;
		}
	}
	private function hasErrors($json)
	{
		if($this->keyWarning)
		{
			if(is_null($this->_apiKey))
			{
				echo '<p>Currently you are not using an API key. It is recommended that you use one. <a href="http://code.google.com/apis/urlshortener/v1/authentication.html#key">Click here to learn more about the API key</a></p>';
			}
		}
		if(is_object($json))
		{
			if(isset($json->error))
			{
				foreach($json->error->errors as $error)
				{
					$this->error.= $error->message.':'.$error->location.'; ';
				}
				return true;
			}
		}
		else
		{
			$this->error = 'Malformed JSON response';
			return true;
		}
	}
}
?>
相关标签: php