この記事では、WeChat パブリック プラットフォームでの CURL の適用例を紹介します。このような問題が発生した場合は、お気軽に参照してください。
私は最近仕事でcurlをよく使います。Curlはブラウザをシミュレートしてデータを送信します。HTTP、HTTPS、FTPなどの多くのプロトコルをサポートしており、いくつかの操作を実行するユーザーを収集およびシミュレートするときに非常に便利です。
CURL を使用するには主に 4 つの手順があります:
1. URLを初期化します
2. リクエストのいくつかのパラメーター (COOKIE、HEAD...) を設定します
3. リクエストを実行します
4. リソースを閉じる
まず単純なコレクションについて説明します。一般的に、Web ページのコンテンツを取得する場合は、file_get_contents() 関数を使用して取得するのが最も便利です。
コードをコピー | ||
$ch =curl_init();//リソースを初期化します
curl_setopt($ch,CURLOPT_URL,”http://www.mapenggang.com”);//取得したいWebページを設定します |
コードは次のとおりです | コードをコピー |
//ここでヘッダー情報を設定する必要があります。これらは、パケットをキャプチャするときに取得できます
$ch =curl_init(); curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);//Cookie 保存ディレクトリを設定します。これは非常に重要です (Cookie も保存していないのに、馬化騰だと思っているのですね!) //トークンの値を取得します $loginData = json_decode($loginData,true); $token =explode("=",$loginData['ErrMsg']); $token = array_pop($token); echo "WeChat システムに正常にログインしました
|
上記は WeChat パブリック プラットフォームにログインするためのコードです。テスト後の使用方法は非常に簡単です。
最近、私は WeChat パブリック プラットフォームで多くの人に公開されていますが、これは長い旅の最初のステップにすぎません。これにより、ユーザーの完全な情報を表示できるようにする方法を後で共有します。私自身のプラットフォーム (私によると) 現時点では、インターネット上で fakeid と openid を一致させる方法について良い解決策が存在しないことをご理解ください。数日間の格闘の後、現在では一致させることができます。これは非常に面倒で、既存のユーザーは一致させることができません (実際、これは理論的には可能です) それは可能ですが、私はまだそれを行っていませんし、ばかげた話はしません。実際、これを行う時間がありません。機会があれば、試してみてください。ただし、実装には既存のシステムのサポートが必要です。つまり、現在のシステムはチャット履歴 (「何と言ったのですか? 私は何も言っていません!))) を記録して使用する必要があります。」
体育の先生、体育の授業がよくなくて中国語を教えに来なかったって言ってましたが、最近書けそうなことがたくさん出てきたので思いついて書きました。ここ数日、主に使用されているのは CURL なので、今日は WeChat パブリック プラットフォームにログインするために用意しているものを書き留めておきます。ここでは、WeChat パブリック プラットフォームについては後ほど詳しく書くかもしれません。
添付ファイル:
オプション |
オプション値値 |
備考 |
CURLOPT_AUTOREFERER |
Location:に基づいてリダイレクトするときに、ヘッダーにReferer:情報を自動的に設定します。 |
|
CURLOPT_BINARYTRANSFER |
CURLOPT_RETURNTRANSFERが有効な場合、ネイティブ (Raw) 出力を返します。 |
|
CURLOPT_COOKIESセッション
|
有効にすると、curlは1つのセッションCookieのみを渡し、他のCookieを無視します。デフォルトでは、cURLはすべてのCookieを返します。 サービス終了。 セッション Cookie は、サーバー側の セッション が有効かどうかを判断するために使用される Cookie を指します。 |
|
CURLOPT_CRLF
|
有効にすると、Unix改行文字が復帰文字と改行文字に変換されます。 |
|
CURLOPT_DNS_USE_GLOBAL_CACHE |
有効にすると、グローバル DNS キャッシュが有効になります。これはスレッドセーフであり、デフォルトで有効になります。 |
|
CURLOPT_FAILONERROR |
HTTP ステータス コードを表示します。デフォルトの動作では、400 以下の数値を持つ HTTP 情報を無視します。 |
|
CURLOPT_FILETIME |
有効にすると、リモートドキュメント内の情報の変更が試行されます。結果情報は、curl_getinfo() 関数の CURLINFO_FILETIME オプションを通じて返されます。 curl_getinfo(). |
|
CURLOPT_FOLLOWLOCATION |
有効にすると、サーバーから返された "Location: "" が header に配置され、再帰的にサーバーに返されます。再帰的な数を制限するには、CURLOPT_MAXREDIRSを使用します戻り値。 |
|
CURLOPT_FORBID_REUSE |
インタラクション完了後に強制的に切断され、再利用することはできません。 |
|
CURLOPT_FRESH_CONNECT |
キャッシュ内の接続を新しい接続に強制的に置き換えます。 |
|
CURLOPT_FTP_USE_EPRT |
有効な場合 FTPのダウンロード中に、EPRT (またはLPRT)コマンドを使用します。 FALSEに設定されているときにEPRTとLPRTを無効にするには、PORTコマンドを使用しますのみ。 |
|
有効にすると、FTP転送中にPASVモードに戻る前に、まずEPSVコマンドを試してください。 FALSEに設定すると、EPSVコマンドが無効になります。 |
|
|
CURLOPT_FTPAPPEND |
有効にすると、ファイルを上書きするのではなく追加書き込みします。 |
|
CURLOPT_FTPASCII |
CURLOPT_TRANSFERTEXTのエイリアス。 |
|
CURLOPT_FTPLISTONLY |
有効にすると、FTPディレクトリの名前のみがリストされます。 |
|
CURLOPT_HEADER |
有効にすると、ヘッダーファイル情報がデータストリームとして出力されます。 |
|
CURLINFO_HEADER_OUT |
有効な場合の追跡ハンドルのリクエスト文字列。 |
PHP 5.1.3 以降で利用可能です。 CURLINFO_接頭辞は意図的(意図的)です。 |
CURLOPT_HTTPGET |
有効にすると、HTTPのメソッドがGETに設定されます。これは、GETがデフォルトであるため、変更された場合にのみ使用されます。 |
|
CURLOPT_HTTPPROXYTUNNEL |
有効にすると、HTTPプロキシ経由で送信されます。 |
|
CURLOPT_MUTE |
有効にすると、cURL関数で変更されたすべてのパラメータがデフォルト値に復元されます。 |
|
CURLOPT_NETRC |
接続が確立されたら、~/.netrcファイルにアクセスして、リモート サイトに接続するためのユーザー名とパスワード情報を取得します。 |
|
CURLOPT_NOBODY |
有効にすると、HTMLのBODY部分が出力されなくなります。 |
|
CURLOPT_NOPROGRESS |
有効な場合、curl転送の進行状況バーをオフにする この項目のデフォルト設定は有効です。 注:PHPは、このオプションを自動的にTRUEに設定します。このオプションはデバッグ目的でのみ変更する必要があります。
|
|
CURLOPT_NOSIGNAL |
有効にすると、curlからphpに渡されるすべてのシグナルを無視します。これは、SAPIマルチスレッド送信中にデフォルトで有効になります。 |
cURL は 7.10 で追加されました。 |
CURLOPT_POST |
有効にすると、フォーム送信と同様に、タイプ: application/x-www-form-urlencodedの通常のPOSTリクエストが送信されます。 |
|
CURLOPT_PUT |
が有効になって HTTP によるファイルの送信が許可される場合、CURLOPT_INFILE と CURLOPT_INFILESIZE の両方を設定する必要があります。 |
|
CURLOPT_RETURNTRANSFER |
curl_exec()で取得した情報を直接出力するのではなく、ファイルストリームの形式で返します。 |
|
CURLOPT_SSL_VERIFYPEER |
を無効にすると、cURLはサーバーからの検証を終了します。 CURLOPT_CAINFOオプションを使用して証明書を設定します CURLOPT_SSL_VERIFYPEERの場合は、CURLOPT_CAPATHオプションを使用して証明書ディレクトリを設定します(デフォルトは2) が有効になっています。CURLOPT_SSL_VERIFYHOST は TRUE に設定する必要があります。それ以外の場合は FALSE に設定します。 |
cURL 7.10以降、デフォルトはTRUEです。 cURL 7.10 以降のデフォルトのバンドルのインストール。 |
CURLOPT_TRANSFERTEXT |
FTP転送にASCIIモードを使用できるようにします。 LDAPの場合、HTMLの代わりにプレーンテキスト情報を取得します。 Windows システムでは、システムは STDOUT を バイナリ モードに設定しません。 |
|
CURLOPT_UNRESTRICTED_AUTH |
ドメイン名が変更された場合でも、CURLOPT_FOLLOWLOCATIONを使用して生成された複数のロケーションにユーザー名とパスワード情報を継続的に追加します。 |
|
有効にするとファイルのアップロードを許可します。 |
|
|
|