Maison >développement back-end >tutoriel php >Comment implémenter des URL longues et courtes en php

Comment implémenter des URL longues et courtes en php

黄舟
黄舟original
2017-10-13 09:15:341774parcourir

Cet article présente principalement la méthode d'implémentation des URL longues et courtes PHP. Les amis qui en ont besoin peuvent s'y référer

Comme son nom l'indique, un lien long est un lien très long ; un lien très court. Les liens longs peuvent générer des liens courts, et les liens courts proviennent de liens longs.

Que sont les liens longs et les liens courts ?

Comme son nom l'indique, un lien long est un lien très long ; un lien très court. Les liens longs peuvent générer des liens courts, et les liens courts proviennent de liens longs.

Pourquoi utiliser des liens longs et des liens courts ?

On peut comparer des liens longs et des liens courts ? les liens courts sont plus courts et plus beaux que les liens sortants.

Sécurité, les liens longs peuvent contenir certains paramètres, tels que http://xxx.xxx.xxx?id=1¶m1=san, nous pouvons facilement voir que l'url utilise la méthode get, et vous pouvez également voir quels paramètres sont demandés. Cependant, nous ne pouvons accéder qu'au lien court http://t.cn/RNGQRUJ et ne pouvons pas facilement vérifier quels paramètres et autres conditions y sont contenus.

Adresse de téléchargement d'un exemple de code : Lien : https://pan.baidu.com/s/1kVh4FQ3 Mot de passe : 4r8p

Scénarios d'utilisation

Partage de contenu Weibo

Liens contenus dans les messages texte

Liens de partage WeChat

Méthodes de mise en œuvre

Selon l'explication de l'Encyclopédie Baidu, la conversion de liens longs en liens courts utilise principalement le cryptage md5 pour réaliser la conversion.

Implémentation du code

Créer une fonction d'outil curl


// 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; 
}

Créer Méthodes de liens courts et de liens longs


//根据长网址获取短网址 
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; 
  } 
}

Créer une fonction de traitement d'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); 
  } 
}

Appeler le fonction


//要缩短的网址 
$url = "http://www.qqdeveloper.com/detail/25/1.html"; //这里自己看着办,修改成你要缩短的网址还是获取post的数据还是怎么滴。 
$url = filterUrl($url); //对URL进行简单处理的方法 
echo $short = sinaShortenUrl($url); //根据传入的长网址生产短网址 
echo "</br>"; 
echo $ulong = sinaExpandUrl($short);

Résumé

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn