短地址服务用于练手的才学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¶2=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¶2=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 填到对应位置好了剩下的大家就使用吧