ホームページ  >  記事  >  バックエンド開発  >  get、post、curl のシミュレーションに使用できる、curl クラスの深い理解 download_PHP チュートリアル

get、post、curl のシミュレーションに使用できる、curl クラスの深い理解 download_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:07:221249ブラウズ

以下に示すように:

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

class Curl {
/*
* 指定されたアドレスにアクセスするメソッドを取得します
* @param string url アクセス先のアドレス
* @param string cookie cookieの保存先アドレス、cookieが無い場合はcookieは送信されません
* @return stringcurl_exec()で取得した情報
* @author andy
** /
public function get( $url, $cookie='' )
{
// cURL セッションを初期化します
$curl =curl_init($url);
// ヘッダー情報を表示しません
curl_setopt($curl, CURLOPT_HEADER, 0);
//curl_exec()で取得した情報をファイルストリームに変換 フォームは直接出力せずに返却します。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 自動ジャンプを使用します
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
if(!empty($cookie)) {
// Cookie データを含むファイル名、 Cookie ファイルの形式は Netscape 形式にすることも、単純な HTTP ヘッダー情報をファイルに保存することもできます。
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
}
// リファラーを自動的に設定します
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
// Curl セッションを実行します
$tmp =curl_exec($curl); / / Curl セッションを閉じる
curl_close($curl);
return $tmp;
}
/*
* Post メソッドは、指定されたアドレスのリクエストをシミュレートします
* @param string url リクエストされた指定されたアドレス
* @param array params リクエスト
* #patam 文字列 cookie クッキーの保存アドレス
* @curl_exec() で取得した文字列情報を返す
* @author andy
**/
public function post( $url, $params, $cookie )
{
$curl = curl_init( $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
// 認証証明書のソースを確認します。0 は、証明書の有効性のチェックを禁止することを意味します。
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
// 証明書から SSL 暗号化アルゴリズムが存在するかどうかを確認します
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
// ユーザーが使用するブラウザをシミュレートし、 HTTP リクエスト「user-agent」ヘッダーの文字列。
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
//フォーム送信と同様に、タイプ: application/x-www-form-urlencoded の通常の POST リクエストを送信します。
curl_setopt($curl, CURLOPT_POST, 1);
//curl_exec() で取得した情報を直接出力するのではなく、ファイル ストリームの形式で返します。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 自動ジャンプを使用します
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
// リファラーを自動的に設定します
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
// Cookie アドレス
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
// すべてのデータは、HTTP プロトコルの「POST」操作を使用して送信されます。ファイルを送信するには、
// ファイル名の先頭に @ を付け、フルパスを使用します。このパラメータは、URL コード化された文字列を介して渡すことができます
// 'para1=val1¶2=val2&...' と同様、またはキー値としてフィールド名、値としてフィールド データを持つ配列を使用します
// If valueは配列です。Content-Type ヘッダーは multipart/form-data に設定されます。
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params));
$result =curl_exec($curl);
curl_close($curl);
return $result;
}
/**
* リモートダウンロード
* @param string $remote リモート画像アドレス
* @param string $local ローカルに保存されたアドレス
* @param string $cookie Cookie アドレス オプションのパラメーターは によって与えられます
* 一部の Web サイトでは、Web サイトをダウンロードするために Cookie が必要です。上記
* したがって、Cookie を追加する必要があります
* @return void
* @author andy
*/
public function reutersload($remote, $local, $cookie= '') {
$cp =curl_init($remote);
$fp = fopen($local,"w");
curl_setopt($cp, CURLOPT_FILE, $fp );
curl_setopt($cp, CURLOPT_HEADER, 0);
if($cookie != '') {
curl_setopt($cp, CURLOPT_COOKIEFILE, $cookie);
}
curl_exec($cp);
curl_close($cp );
fclose($fp);
}
}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327550.html技術記事以下のようにコードをコピーします: ?php class Curl { /* * アクセスする指定アドレスを取得するメソッドを取得 * @param string url アクセスするアドレス * @param string cookie Cookie の保存アドレス。 .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。