ホームページ  >  記事  >  バックエンド開発  >  PHP がジャンプ インスタンスの実アドレスを取得する_PHP チュートリアル

PHP がジャンプ インスタンスの実アドレスを取得する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 16:57:40859ブラウズ

現在、短縮 URL をクリックすると短縮前の URL にジャンプするアプリケーションがたくさんあります。今日は、PHP が短縮 URL にジャンプする前の URL を取得する方法を見ていきます。実際には、PHP の get_headers 関数を使用するだけです。 ,

応答ヘッダーを取得して、ゆっくりと分析します。

具体的な実装方法を指定します:

コードは次のとおりです コードをコピー

$header = get_headers($url, 1);
if (strpos($header[0], ’301′) || strpos($header[0], ’302′))​​ {
if (is_array($header['Location'])) {
return $header['Location'][count($header['Location'])-1];
} その他 {
return $header['場所'];
}
} その他 {
$url を返します;
}


例 2

コードは次のとおりです コードをコピー

//
echo get_redirect_url('http://www.111cN.nEt');
//出力結果は次のとおりです: http://code.google.com/android/
関数 get_redirect_url($url){
$redirect_url = null;

$url_parts = @parse_url($url);
(!$url_parts) が false を返す場合;
If (!isset($url_parts['host'])) // 相対 URL を処理できません
; If (!isset($url_parts['path'])) $url_parts['path'] = '/';

$sock = fsockopen($url_parts['host'], (isset($url_parts['port']) ? (int)$url_parts['port'] : 80), $errno, $errstr, 30);
(!$sock) が false を返す場合;

$request = "HEAD " . $url_parts['path'] . (isset($url_parts['query']) ? '?'.$url_parts['query'] : '') . ;
$request .= 'ホスト: ' $url_parts['host'] . $request .= "接続: 閉じるrnrn"; fwrite($sock, $request);
$response = '';
While(!feof($sock)) $response .= fread($sock, 8192);
fclose($sock);

if (preg_match('/^Location: (.+?)$/m', $response, $matches)){

if ( substr($matches[1], 0, 1) == "/" )

$url_parts['scheme'] を返します。 $url_parts['host'] ;
その他
return trim($matches[1]);

} 他 {

false を返す;

}

}

http://www.bkjia.com/PHPjc/631515.html

tru​​ehttp://www.bkjia.com/PHPjc/631515.html技術記事最近は短縮URLをクリックすると短縮前のURLにジャンプするアプリがたくさんありますが、今日はPHPで短縮URLにジャンプする前のURLを取得する方法を見ていきます
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。