이 글은 주로 PHP 긴 URL과 짧은 URL의 구현 방법을 소개합니다. 필요한 친구들은 참고하면 됩니다.
이름에서 알 수 있듯이 긴 링크는 매우 긴 링크이고, 짧은 링크는 매우 짧은 링크입니다. 긴 링크는 짧은 링크를 생성할 수 있으며, 짧은 링크는 긴 링크에서 나옵니다.
긴 링크와 짧은 링크는 무엇인가요?
이름에서 알 수 있듯이 긴 링크는 매우 긴 링크입니다. 긴 링크는 짧은 링크를 생성할 수 있으며, 짧은 링크는 긴 링크에서 나옵니다.
왜 긴 링크와 짧은 링크를 사용해야 할까요?
긴 링크와 짧은 링크를 비교할 수 있습니다.
보안, 긴 링크에는 http://xxx.xxx.xxx?id=1¶m1=san과 같은 일부 매개변수가 포함될 수 있습니다. URL이 get 메소드를 사용한다는 것을 쉽게 알 수 있으며 어떤 매개변수도 볼 수 있습니다. 요청되었습니다. 그러나 짧은 링크인 http://t.cn/RNGQRUJ에만 액세스할 수 있으며 거기에 어떤 매개변수 및 기타 조건이 전달되는지 쉽게 확인할 수 없습니다.
샘플 코드 다운로드 주소: 링크: https://pan.baidu.com/s/1kVh4FQ3 비밀번호: 4r8p
사용 시나리오
Weibo 콘텐츠 공유
SMS에 포함된 링크
WeChat 공유 링크
구현 방법
바이두 백과사전에 따르면 긴 링크를 짧은 링크로 변환하는 작업은 주로 md5 암호화를 사용하여 변환됩니다.
코드 구현
컬 도구 기능 만들기
// SINA_APPKEY就是你在微信开发者平台的appkey define('SINA_APPKEY', ''); function curlQuery($url) { //设置附加HTTP头 $addHead = array( "Content-type: application/json", ); //初始化curl,当然,你也可以用fsockopen代替 $curl_obj = curl_init(); //设置网址 curl_setopt($curl_obj, CURLOPT_URL, $url); //附加Head内容 curl_setopt($curl_obj, CURLOPT_HTTPHEADER, $addHead); //是否输出返回头信息 curl_setopt($curl_obj, CURLOPT_HEADER, 0); //将curl_exec的结果返回 curl_setopt($curl_obj, CURLOPT_RETURNTRANSFER, 1); //设置超时时间 curl_setopt($curl_obj, CURLOPT_TIMEOUT, 15); //执行 $result = curl_exec($curl_obj); //关闭curl回话 curl_close($curl_obj); return $result; }
짧은 링크와 긴 링크 만드는 방법
//根据长网址获取短网址 function sinaShortenUrl($long_url) { //拼接请求地址,此地址你可以在官方的文档中查看到 $url = 'http://api.t.sina.com.cn/short_url/shorten.json?source=' . SINA_APPKEY . '&url_long=' . $long_url; //获取请求结果 $result = curlQuery($url); //下面这行注释用于调试, //print_r($result);exit(); //解析json $json = json_decode($result); //异常情况返回false if (isset($json->error) || !isset($json[0]->url_short) || $json[0]->url_short == '') { return false; } else { return $json[0]->url_short; } } //根据短网址获取长网址,此函数重用了不少sinaShortenUrl中的代码,以方便你阅读对比,你可以自行合并两个函数 function sinaExpandUrl($short_url) { //拼接请求地址,此地址你可以在官方的文档中查看到 $url = 'http://api.t.sina.com.cn/short_url/expand.json?source=' . SINA_APPKEY . '&url_short=' . $short_url; //获取请求结果 $result = curlQuery($url); //下面这行注释用于调试 //print_r($result);exit(); //解析json $json = json_decode($result); //异常情况返回false if (isset($json->error) || !isset($json[0]->url_long) || $json[0]->url_long == '') { return false; } else { return $json[0]->url_long; } }
url 처리 기능 만들기
//简单处理下url,sina对于没有协议(http://)开头的和不规范的地址会返回错误 function filterUrl($url = '') { $url = trim(strtolower($url)); $url = trim(preg_replace('/^http:\//', '', $url)); if ($url == '') { return false; } else { return urlencode('http://' . $url); } }
통화 기능
//要缩短的网址 $url = "http://www.qqdeveloper.com/detail/25/1.html"; //这里自己看着办,修改成你要缩短的网址还是获取post的数据还是怎么滴。 $url = filterUrl($url); //对URL进行简单处理的方法 echo $short = sinaShortenUrl($url); //根据传入的长网址生产短网址 echo "</br>"; echo $ulong = sinaExpandUrl($short);
요약
위 내용은 PHP에서 길고 짧은 URL을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!