Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
随笔 - 547, 文章 - 1231, 评论 - 364
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

php之短地址连接

Posted on 2014-03-30 12:30  analyzer  阅读(335)  评论(0编辑  收藏

短地址服务用于练手的才学php没多久,废话少说上代码了
新建url.php页面代码如下

<?php header("Content-type: text/html; charset=utf-8"); ?>
<html>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<body>
<?php 
  @$oldurl = $_GET['oldurl'];
  @$newurl ="http://".$_GET['newurl'];
?>
 
<form action="transferUrl.php" method="post">
需要转换的url: <input type="text" name="url" id="oldurl" value="<?=$oldurl;?>" />
<input type="submit" />
</form>
 
转换后的url:<input type="text" name="url" value="<?=$newurl;?>" id="newurl"/>
<script type="text/javascript">
	var old = "<?=$oldurl;?>";
     if(old==""){
      document.getElementById('newurl').value='';
     } else{
     document.getElementById('oldurl').value=old;
 
     }
</script>
</body>
</html>

再新建transferUrl.php页面用于转换短地址的

<?php
     //缩短地址
	function transferUrl($url){
	 echo $url.'<br/>';	
     $key='';//定义的你的api key 需要到网易去申请126.am去申请
     $posturl='http://126.am/api!shorten.action';//网易缩短地址的url
     $postData  = array('longUrl' => $url, 'key'=>$key);//传递的参数按照要求进行组装
     $jsonData = json_encode($postData);
     $curlObj=curl_init();
     curl_setopt($curlObj, CURLOPT_URL, 'http://126.am/api!shorten.action');
     curl_setopt($curlObj,CURLOPT_POST,true);//启用时会发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。 
     curl_setopt($curlObj,CURLOPT_RETURNTRANSFER,true);//将 curl_exec()获取的信息以文件流的形式返回,而不是直接输出。       
     curl_setopt($curlObj, CURLOPT_POSTFIELDS, $postData);//全部数据使用HTTP协议中的"POST"操作来发送。要发送文件,在文件名前面加上@前缀并使用完整路径。这个参数可以通过urlencoded后的字符串类似'para1=val1&para2=val2&...'或使用一个以字段名为键值,字段数据为值的数组。如果value是一个数组,Content-Type头将会被设置成multipart/form-data。
     $response=curl_exec($curlObj);//执行url提交
     $json = json_decode($response);//将返回参数参数进行json格式化
     curl_close($curlObj);//关闭链接
     return $json->url;//输出返回的json url
 } 
 
  //自定义输出地址必须满足http://126.am
  function shorturlByAlias($url,$alias){
 
     $key='';//定义的你的api key 需要到网易去申请126.am去申请
     $posturl='http://126.am/api!alias.action';//网易自定义缩短地址的url
     $postData  = array('longUrl' => $url, 'key'=>$key,'userShort'=> $alias);//传递的参数按照要求进行组装
     $curlObj=curl_init();
     curl_setopt($curlObj, CURLOPT_URL, $posturl);
     curl_setopt($curlObj,CURLOPT_POST,true);//启用时会发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。 
     curl_setopt($curlObj,CURLOPT_RETURNTRANSFER,true);//将 curl_exec()获取的信息以文件流的形式返回,而不是直接输出。       
     curl_setopt($curlObj, CURLOPT_POSTFIELDS, $postData);//全部数据使用HTTP协议中的"POST"操作来发送。要发送文件,在文件名前面加上@前缀并使用完整路径。这个参数可以通过urlencoded后的字符串类似'para1=val1&para2=val2&...'或使用一个以字段名为键值,字段数据为值的数组。如果value是一个数组,Content-Type头将会被设置成multipart/form-data。
     $response=curl_exec($curlObj);//执行url提交
     $json = json_decode($response);//将返回参数参数进行json格式化
     print_r($json);
     curl_close($curlObj);//关闭链接
     return $json->userShort;//输出返回的json url
 
 
  }    
  $shorturl = transferUrl($_POST['url']);
  setcookie('myurl',$shorturl);
  $oldurl = $_POST['url'];
  //setcookie('myurl2',$_POST['url']);
  header("Location: url.php?oldurl=$oldurl&newurl=$shorturl"); 
  //确保重定向后,后续代码不会被执行 
  exit;
 
 
?>

这里需要大家自己去申请一个appkey 填到对应位置好了剩下的大家就使用吧

我要啦免费统计