ホームページ  >  記事  >  バックエンド開発  >  PHP で長い URL と短い URL を実装する方法

PHP で長い URL と短い URL を実装する方法

不言
不言オリジナル
2018-06-19 09:26:012047ブラウズ

この記事では主に 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 コンテンツの共有

テキスト メッセージに含まれるリンク

WeChat 共有リンク

実装方法

Baidu Encyclopedia の説明によると、長いリンクから短いリンクへの変換には、主に md5 暗号化が使用されます。

コードの実装

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

短いリンクと長いリンクを作成する方法

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

# #Calling function

//要缩短的网址 
$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中国語ウェブサイトへ!

関連する推奨事項:

Yunpian ネットワーク インターフェイスを呼び出してテキスト メッセージを送信するために PHP を実装する方法

PHP CURL のパラメータの説明 CURLOPT


以上がPHP で長い URL と短い URL を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。