目次
php、curlagentのget_meta_tags()、CURL、およびユーザーエージェントの使用分析
ホームページ バックエンド開発 PHPチュートリアル get_meta_tags()、CURL、および PHP のユーザー エージェントの使用分析、curlagent_PHP チュートリアル

get_meta_tags()、CURL、および PHP のユーザー エージェントの使用分析、curlagent_PHP チュートリアル

Jul 13, 2016 am 10:11 AM
curl get meta php user-agent 使用法

php、curlagentのget_meta_tags()、CURL、およびユーザーエージェントの使用分析

この記事では、PHP での get_meta_tags()、CURL、およびユーザー エージェントの使用法を例とともに分析します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:

get_meta_tags() 関数は、<meta name="A" content="1"><meta name="B" content="2"> の形式でタグを取得し、それらを 1 つのディメンションにロードするために使用されます。配列、name は要素の添字、content は要素の値です。上記の例のラベルは配列を取得できます: array('A'=>'1', 'b'=>'2')、others< meta> タグは処理されず、この関数は <head> タグのみを処理し、その後の <meta> は処理されます。

ユーザー エージェントは、サーバーから Web ページをリクエストするときにブラウザーによって送信される非表示のヘッダー情報の一部です。ヘッダー情報は、ローカル キャッシュ ディレクトリ、Cookie などの複数の情報を含む配列です。は、IE、Chrome、FF などのブラウザーのタイプ宣言です

今日、Web ページの <meta> タグを取得すると、常に null 値が返されましたが、Web ページのソース コードを直接確認するのが普通だったので、サーバーがそれを判断するように設定されているのかと思いました。まずget_meta_tags.()を使ってローカルファイルを取得し、取得したヘッダ情報をファイルに書き込むと次のようになります。コードは次のとおりです:


コードをコピーします コードは次のとおりです:
array (
'HTTP_HOST' => '192.168.30.205'、
'PATH' => 'C:/Program Files/Common Files/NetSarang;C:/Program Files/NVIDIA Corporation/PhysX/Common;C:/Program Files/Common Files/Microsoft Shared/Windows Live;C:/Program Files /Intel/iCLS クライアント/;C:/Windows/system32;C:/Windows;C:/Windows/System32/Wbem;C:/Windows/System32/WindowsPowerShell/v1.0/;C:/Program Files/Intel /インテル(R) マネジメント エンジン コンポーネント/DAL;C:/プログラム ファイル/インテル/インテル(R) マネジメント エンジン コンポーネント/IPT;C:/プログラム ファイル/インテル/OpenCL SDK/2.0/bin/x86;C:/プログラム ファイル/Common Files/Thunder Network/KanKan/Codecs;C:/Program Files/QuickTime Alternative/QTSystem;C:/Program Files/Windows Live/Shared;C:/Program Files/QuickTime Alternative/QTSystem/; ;%JAVA_HOME%/jre/bin;',
'SystemRoot' => 'C:/Windows',
'COMSPEC' => 'C:/Windows/system32/cmd.exe',
'PATHEXT' => '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC',
'WINDIR' => 'C:/Windows',
'SERVER_SIGNATURE' => ''、
'SERVER_SOFTWARE' => 'Apache/2.2.11 (Win32) PHP/5.2.8'、
'SERVER_NAME' => '192.168.30.205'、
'SERVER_ADDR' => '192.168.30.205'、
'SERVER_PORT' => '80'、
'REMOTE_ADDR' => '192.168.30.205'、
'DOCUMENT_ROOT' => 'E:/wamp/www',
'SERVER_ADMIN' => 'admin@admin.com'、
'SCRIPT_FILENAME' => 'E:/wamp/www/user-agent.php',
'REMOTE_PORT' => '59479'、
'GATEWAY_INTERFACE' => 'CGI/1.1'、
'SERVER_PROTOCOL' => 'HTTP/1.0'、
'REQUEST_METHOD' => 'GET'、
'QUERY_STRING' => ''、
'REQUEST_URI' => '/user-agent.php',
'SCRIPT_NAME' => '/user-agent.php',
'PHP_SELF' => '/user-agent.php',
'REQUEST_TIME' => 1400747529、
)
案の定、配列には HTTP_USER_AGENT 要素がありません。情報を確認すると、Apache には UA がありません。そのため、get_meta_tags() 関数には UA を偽造する機能がないことがわかります。それを解決する方法
その後、CURLを使用してWebページを取得しましたが、最初にUAを偽造し、取得後に正規表現を使用して<meta>を解析するのが少し面倒でした。

偽造メソッド、コードは次のとおりです:


コードをコピーします コードは次のとおりです://cURLを初期化します
$curl =curl_init();
// クロールする必要がある URL を設定します
curl_setopt($curl, CURLOPT_URL, 'http://localhost/user-agent.php');
//ファイルヘッダをブラウザに出力するか設定します、0は出力しません
curl_setopt($curl, CURLOPT_HEADER, 0);
//UA を設定します。ここでは、ブラウザーの UA がサーバーに転送されます。値を手動で指定することもできます。 curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
//結果を文字列に返すか画面に出力するように cURL パラメータを設定します。 0は画面を出力して演算結果のBOOL値を返し、1は文字列を返します
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // cURL を実行して Web ページをリクエストします
$data =curl_exec($curl);
// URL リクエストを閉じる
カール_クローズ($カール);
// 取得したデータを加工します
var_dump($data);

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/928218.html技術記事 php、curlagent での get_meta_tags()、CURL、およびユーザー エージェントの使用法分析 この記事では、php での get_meta_tags()、CURL およびユーザー エージェントの使用法を例とともに分析します。参考のためにみんなで共有してください。詳細な分析...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

CakePHP の日付と時刻

新しい手頃な価格の Meta Quest 3S VR ヘッドセットが FCC に登場、発売が近いことを示唆 新しい手頃な価格の Meta Quest 3S VR ヘッドセットが FCC に登場、発売が近いことを示唆 Sep 04, 2024 am 06:51 AM

新しい手頃な価格の Meta Quest 3S VR ヘッドセットが FCC に登場、発売が近いことを示唆

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

CakePHP ファイルのアップロード

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

CakePHP ルーティング

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP について話し合う

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

CakePHP プロジェクトの構成

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP クイックガイド

See all articles