Bookmark and Share

Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
随笔 - 546, 文章 - 1230, 评论 - 373, 阅读 - 239万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

php之短地址连接

Posted on   analyzer  阅读(524)  评论(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 填到对应位置好了剩下的大家就使用吧

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
我要啦免费统计
点击右上角即可分享
微信分享提示