ホームページ  >  記事  >  バックエンド開発  >  PHPで短縮URL(ショートリンク)を復元する簡単な方法(テスト用)_phpスキル

PHPで短縮URL(ショートリンク)を復元する簡単な方法(テスト用)_phpスキル

WBOY
WBOYオリジナル
2016-05-16 09:00:063259ブラウズ

この記事の例では、php で短い url の復元を簡単に実装する方法について説明します。参考のために全員と共有してください。詳細は次のとおりです。

ここでは、スクリプト ホームの短縮 url http://t.cn/heehwk を例として取り上げます。実行中のエフェクトのスクリーンショットは次のとおりです。

具体的なコードは次のとおりです。

<?php
$info1 = '亲!暂不能解析此类短网址。';
$info2 = '亲!网址解析失败,请重试。';
$info3 = '<br/><b><a href="';
$info4 = '" target="_blank">立即访问>></a></b>';
$info5 = '亲!不是短网址或无效。';
function unshort($url)
{
global $info1,$info2,$info3,$info4;
 $curl = curl_init();
 curl_setopt($curl, CURLOPT_URL, $url);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
 curl_setopt ($curl, CURLOPT_USERAGENT, 'Mozilla/8.0 (compatible; MSIE 8.0; Windows 7');
 curl_setopt($curl, CURLOPT_HEADER, 1);
 curl_setopt($curl, CURLOPT_NOBODY, 0);
 curl_setopt($curl, CURLOPT_TIMEOUT, 15);
 curl_setopt($curl,CURLOPT_ENCODING, 'gzip');
 $data = curl_exec($curl);
 if(!empty($data)){
 $message = curl_getinfo($curl);
  curl_close($curl);
   $status = $message['http_code'];
   if ($status == '301' || $status == '302' ){
    $UrlHeader = (get_headers($url,1));
    $unurl = $UrlHeader[Location];
    if(is_array($unurl)) {
     $unurl = $unurl[0];
     $unurl .=$info3.$unurl.$info4;
     return $unurl;
     }
    else {
    $unurl .=$info3.$unurl.$info4;
    return $unurl;
    }
   }
  return $info1;
 }
 return $info2;
}
function adfunshort($url)
{
global $info3,$info4,$info5;
 $c = file_get_contents($url);
 $p = "/url = '(.*)';/isU";
 preg_match($p, $c, $content);
 $unurl = $content[1];
 if($unurl == '') {
  return $info5;
 }
 else {
  $unurl .=$info3.$unurl.$info4;
  return $unurl;
 }
}
?>
<form action="" method="post">
短网址:<input type="text" name="turl" class="inurl" size="26" />
<input type="hidden" name="url_done" value="done" />
<input type="submit" value="提交" class="suburl" />
</form>
<div id="trurl">
<?php
$turl = $_POST['turl']?$_POST['turl']:"";
$url_done= $_POST['url_done']?$_POST['url_done']:"";
if ($url_done == 'done'){
$http = substr($turl,0,7);
 if ($http != 'http://' && $http != 'https:/'){
  $turl = 'http://'.$turl;
  }
  $tturl = substr($turl,0,11);
  if ($tturl == 'http://adf.'){
  $longurl = adfunshort($turl);
  }else {
  $longurl = unshort($turl);
 }echo "短网址 ".$turl." 的真实网址为:<br />$longurl ";
}
?>

さらに、このサイトでは短縮 url 生成ツールも提供しています。具体的なリンクは次のとおりです。

http://tools.jb51.net/password/dwzcreate

php の詳細については、このサイトの特別トピック「php 暗号化方式の概要」、「php の操作と演算子の使用法の概要"、"php の操作と演算子の使用法の概要php ネットワーク プログラミング スキル "、"php 基本構文入門チュートリアル"、"php 操作オフィス ドキュメント スキルの概要 (word、excel、access、ppt を含む)"、"php 日時 使用法の概要"、"php オブジェクト指向プログラミング入門チュートリアル"、"php 文字列 (文字列) の使用法の概要", "php mysql データベース操作入門チュートリアル a>》と《php の一般的なデータベース操作スキルの概要

この記事が php プログラミングのすべての人に役立つことを願っています。

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