以下に、ユーザーのログインやデータの投稿を模倣できる 2 つの実装方法をまとめます。困っている人はぜひ参考にしてください。
curl 関数を使用して
PHP の CURL 関数ライブラリ (クライアント URL ライブラリ関数)
curl_close — Curl セッションを閉じる
curl_copy_handle — Curl 接続リソースのすべての内容とパラメータをコピーする
curl_errno — 現在の接続リソースのエラー情報を含む数値を返すセッション番号
curl_error — 現在のセッションのエラー情報を含む文字列を返します
curl_exec — Curl セッションを実行します
curl_getinfo — Curl 接続リソース ハンドルに関する情報を取得します
curl_init — Curl セッションを初期化します
curl_multi_add_handle — 単一の Curl セッションをCurl バッチ セッション Curl ハンドル リソース
curl_multi_close — バッチ ハンドル リソースを閉じる
curl_multi_exec — Curl バッチ ハンドルを解析する
curl_multi_getcontent — 取得した出力のテキスト ストリームを返す
curl_multi_info_read — 現在解析されている Curl の関連する送信情報を取得する
curl_multi_init — Curl バッチ ハンドル リソースを初期化します
curl_multi_remove_handle — Curl バッチ ハンドル リソース内のハンドル リソースを削除します
curl_multi_select — cURL 拡張子に関連付けられているすべてのソケットを取得し、「選択」できます
curl_setopt_array — 配列形式の Curlセッションパラメータを設定する
curl_setopt — Curl のセッションパラメータを設定する
curl_version — Curl 関連のバージョン情報を取得する
curl_init() 関数の役割は、curl セッションを初期化することです。curl_init() 関数の唯一のパラメータはオプションです。 URLアドレスを表します。
curl_exec() 関数は、curl セッションを実行するために使用されます。唯一のパラメーターは、curl_init() 関数によって返されるハンドルです。
curl_close() 関数は、curl セッションを閉じるために使用されます。唯一のパラメータは、curl_init() 関数によって返されるハンドルです。
例
コードは次のとおりです | コードをコピー |
$post_data = array(); |
模仿用户登录
模拟登录到sina
我们要抓取数据,可能是登录以后的内容,这个时候我们就要用到curl的模拟登录功能了。
代码如下 | 复制代码 |
<?php function checklogin( $user, $password ) define( "USERAGENT", $_SERVER['HTTP_USER_AGENT'] ); echo checklogin("zhangying215","xtaj227"); |
2.通过fsockopen
.PHP fsockopen函数说明:
Open Internet or Unix domain socket connection(打开套接字链接)
Initiates a socket connection to the resource specified by target .
fsockopen() returns a file pointer which may be used together with the other file functions (such as fgets() , fgetss() , fwrite() , fclose() , and feof() ).就是返回一个文件句柄
开启PHP fsockopen这个函数
PHP fsockopen需要 PHP.ini 中 allow_url_fopen 选项开启。
代码如下 | 复制代码 |
|
警告: D:…cos-html-cachecos-html-cache.php の 35 行目で fsockopen() がセキュリティ上の理由で無効になっている場合
cos-html-cache の別のバージョンに変更しましたが、依然として無効です働かないよ。その後、次の方法を見つけました。 (機能が無効になっているため、結果は機能しません。)
皆さんも試してみてください。私のような状況はほとんどありません。他の代替機能を使用してください。
1. fsockopen() を無効にする方法
以下は、fsockopen を無効にするためによく使用される 2 つの方法です。
1. php.ini を変更し、disable_functions = の後に fsockopen を追加します
2. php.ini を変更し、allow_url_fopen = On をallow_url_fopen = Off に変更します
2. fsockopen 関数が無効になっている場合の解決方法
1. pfsockopen を同時に無効にしないでください。その後、fsockopen 関数を pfsockopen に直接置き換えます。
具体的な操作: プログラム内で文字列 fsockopen( を検索し、それを pfsockopen( に置き換えます。例は次のとおりです。
変更前:
$fp = fsockopen($host, 80, $errno, $errstr, 30);
変更後:
$fp = pfsockopen($host, 80, $errno, $errstr, 30);