ホームページ  >  記事  >  バックエンド開発  >  PHPカールログインしてコンテンツクラスを取得します。その使用方法を専門家に知らせてください。

PHPカールログインしてコンテンツクラスを取得します。その使用方法を専門家に知らせてください。

WBOY
WBOYオリジナル
2016-06-23 14:02:03844ブラウズ

php 自動ログイン ログインをシミュレート ソースコードを取得

ビジネス要件:
PHP スクリプトを通じて Web ページに自動的にログインし、ログイン後にページのコンテンツを取得する機能。

今、インターネットで次のプログラムを見つけましたが、検証プロセス中に失敗したことがわかりました。ぜひご覧ください。ありがとうございます。

var $cookie_file; {
$this->cookie_file=dirname(__FILE__)."/cookie_".md5(basename(__FILE__)).".txt"; ->cookie_file))
{ // Cookie が存在するかどうかを確認します
$str = $this->vget('jroam') // ログインのランダム値を取得します
preg_match("/name="formhash" value= "(.*?)"/is",$ str,$hash); // ログインのランダム値を抽出
$this->vlogin($this->loginurl,$this->actionstr); // ログin to get Cookie                                                                                               using             using     use using   out out off out out out out out out out out out out out out of    to 's 's 's through 's ‐ ‐w-, url,$data){ //Simulate login to Cookie 関数を取得
$curl =curl_init(); // CURL セッションを開始
curl_setopt($curl, CURLOPT_URL, $url); // アクセスするアドレス
curl _setopt($curl , CURLOPT_SSL_VERIFYPEER, 0);認証証明書のソース
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1) // 証明書から SSL 暗号化アルゴリズムが存在するかどうかを確認します
curl_setopt($curl, CURLOPT_USERAGENT, $ _SERVER['HTTP_USER_AGENT' ]);ユーザーが使用するブラウザ
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 自動ジャンプを使用する
curl_setopt($curl, CURLOPT_AUTOREFERER, 1) // リファラーを自動的に設定する
curl_setopt($curl, CURLOPT_POST, 1); // 通常の Post リクエストを送信します
curl_setopt($curl, CURLOPT_POSTFIELDS, $data) // 送信されたデータ パッケージを送信します
curl_setopt($curl, CURLOPT_COOKIEJAR, $this->cookie_file); // 保存するファイルの名前Cookie 情報
curl_setopt($curl, CURLOPT_COOKIEFILE, $this->cookie_file); // 上に保存されている Cookie 情報を読み取る
curl_setopt($curl, CURLOPT_TIMEOUT, 30) // 終了を防ぐためのタイムアウト制限を設定する
curl_setopt( $curl, CURLOPT_HEADER, 0); // 返されたヘッダー領域の内容を表示します
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1) // 取得された情報はファイル ストリームの形式で返されます
$tmpInfo =curl_exec($curl ; return $tmpInfo; // データを返します
}
function vget($url){ // コンテンツ関数をシミュレートします
$curl =curl_init(); // CURL セッションを開始しますcurl_setopt($curl, CURLOPT_URL, $url) ; / アクセスするアドレス
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 認証証明書のソースを確認します
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1) // 証明書から SSL 暗号化アルゴリズムが存在するかどうかを確認します
;curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // ユーザーが使用するブラウザをシミュレートします
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1) // 自動ジャンプを使用します
curl_setopt($curl, C URLOPT_AUTOREFERER, 1 ; Cookie 情報
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 無限ループを防ぐためにタイムアウト制限を設定します
curl, CURLOPT_HEADER, 0) // 返されたヘッダー領域の内容を表示します
curl_setopt($curl, CURLOPT_RETURNTRANSFER) , 1) ; // 取得した情報はファイルストリームの形式で返されます
$tmpInfo =curl_exec($curl) // 操作を実行します
if (curl_errno($curl)) { echo 'Errno'.curl_error( $curl);
}
curl_close($curl); // CURL セッションを閉じる
return $tmpInfo
}

function vpost($url,$data){ // データ送信関数をシミュレートする
$curl =curl_init(); // CURL セッションを開始します
curl_setopt($curl, CURLOPT_URL, $url); // アクセスするアドレス
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 認証証明書のソースを確認します。
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 証明書から SSL 暗号化アルゴリズムが存在するかどうかを確認します
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']) // ユーザーが使用するブラウザをシミュレートします
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 自動ジャンプを使用します
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // リファラーを自動的に設定します
curl_setopt($curl, CURLOPT_POST, 1); // 通常の Post リクエストを送信します
curl_setopt($curl, CURLOPT_POSTFIELDS, $ data); // 送信されたデータ パッケージを送信します
curl_setopt($curl, CURLOPT_COOKIEFILE, $this->cookie_file) // 上記に保存されている Cookie 情報を読み取ります
curl_setopt($curl, CURLOPT_TIMEOUT, 30) ); // タイムアウト制限により無限ループを防止します
curl_setopt($curl, CURLOPT_HEADER, 0); // 返されたヘッダー領域の内容を表示します
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 取得した情報は次の形式で返されますファイルストリームの
$ tmpInfo =curl_exec($curl); // 操作を実行
if (curl_errno($curl)) {
echo 'Errno'.curl_error($curl) }
curl_close($curl); / キー CURL セッション
return $tmpInfo ; // データを返す
}
function delcookie($cookie_file){ // Cookie を削除する関数
@unlink($cookie_file) // 削除を実行
}
}

// 応用例
$mycurl=new CURL() ;
$mycurl->loginurl="http://192.168.0.2/login.php";//ログインアドレス
$mycurl->actionstr="user_name=111&uspassword=1234" ;//パラメータ文字列

$url1='http://192.168.0.2/userlist.php";
$htmlcontent= $mycurl->vget($url1); //ターゲットアドレスのソースコードを出力
echo $htmlcontent;
?>

ディスカッションへの返信 (解決策)

追加説明、Linux プラットフォーム環境でのことです

正しいパラメータを渡していることを確認してください

$url1='http://192.168.0.2/userlist.php ";

ErrnoCould notsolve host: jroam;[color=#FF0000] Host not foundErrno malformedErrnocouldn't connect to host[/color]

私は自分で解決しましたが、それでも皆さんに感謝したいと思います。

どうやって解決しますか?

私が行きます、あなたが解決しても解決策を失うことはありません!軽蔑するな!

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