ホームページ  >  記事  >  バックエンド開発  >  PHPでcurlを使用するにはどうすればよいですか? (使い方紹介)

PHPでcurlを使用するにはどうすればよいですか? (使い方紹介)

青灯夜游
青灯夜游転載
2020-04-17 09:16:456987ブラウズ

php でカールを使用するにはどうすればよいですか?以下の記事ではphpでのcurlの使い方をまとめています。一定の参考値があるので、困っている友達が参考になれば幸いです。

PHPでcurlを使用するにはどうすればよいですか? (使い方紹介)

1.curl の概要

Baidu Encyclopedia による説明は、「データ送信アーティファクト」です。では、そのアーティファクトはどこにあるのでしょうか? 情報を検索したところ、curl は URL 構文を使用してブラウザをシミュレートしてデータを送信できることがわかりました。ブラウザをシミュレートするため、さまざまなネットワーク プロトコルをサポートしています。現在、http、https、ftp、gopher、telnet、dict、file、および ldap プロトコルをサポートしています。 libcurl は、HTTPS 認証、HTTP POST、HTTP PUT、FTP アップロード (これは PHP の FTP 拡張機能を使用して実行することもできます)、HTTP フォームベースのアップロード、プロキシ、Cookie、およびユーザー名とパスワードの認証もサポートしています。

PHP で最も一般的に使用されるメソッドは、get リクエストと post リクエストをシミュレートするためにcurl です。

2. 使用方法

(1)curl を使用したい場合、最初のステップは、php でcurl を開き、php 設定ファイル php でそれを見つけることです。 ini extension=php_curl.dll、先頭の「;」を削除します。サーバーを再起動します。 phpinfo() を使用して PHP コードを出力すると、画像内の CURL の説明が正常に開かれたことがわかります。

(2)curl を使用して単純なリクエストを完了する手順は、主に 4 つの主要なステップに分かれています:

初期化、新しい Curl リソースの作成。

URL と対応するオプションを設定します

URL を取得してブラウザに渡します

curl リソースを閉じます。リソースを解放します。

例:

<?php
// 创建一个新cURL资源
$ch = curl_init();

// 设置URL和相应的选项
$options = array(CURLOPT_URL => &#39;http://www.example.com/&#39;,
                 CURLOPT_HEADER => false
                );

curl_setopt_array($ch, $options);

// 抓取URL并把它传递给浏览器
curl_exec($ch);

// 关闭cURL资源,并且释放系统资源
curl_close($ch);
?>

3.curl 関数

  • curl_close - cURL セッションを閉じる

  • curl_copy_handle — cURL ハンドルとそのすべてのオプションをコピーします

  • curl_errno — 最後のエラー番号を返します

  • curl_error — を返します現在のセッションの最新のエラーを保護する文字列

  • curl_escape — 指定された文字列を URL エンコードします

  • curl_exec — cURL セッションを実行します

  • curl_file_create — CURLFile オブジェクトを作成します

  • curl_getinfo — cURL 接続リソース ハンドルに関する情報を取得します

  • curl_init — cURL セッションを初期化します

  • curl_multi_add_handle — 個別の Curl ハンドルを Curl バッチ セッションに追加します

  • curl_multi_close — cURL セッションを終了します グループ cURL handle

  • curl_multi_exec — 現在の cURL ハンドルのサブ接続を実行します

  • curl_multi_getcontent — CURLOPT_RETURNTRANSFER が設定されている場合、フェッチされたテキストのテキストを返します出力ストリーム

  • curl_multi_info_read — 現在解析されている cURL

  • curl_multi_init — 新しい cURL バッチ ハンドルを返す

  • curl_multi_remove_handle — Curl バッチ ハンドル リソースのハンドル リソースを削除します

  • curl_multi_select — すべての cURL バッチでアクティブな接続を待機します

  • curl_multi_setopt — cURL 並列処理のオプションを設定します

  • curl_multi_strerror — エラー コードを説明する文字列を返します

  • curl_pause — 接続を一時停止および一時停止解除します

  • curl_reset — libcurl セッションのすべてのオプションをリセットします。ハンドル

  • curl_setopt_array — cURL 転送セッションのオプションを一括で設定します

  • curl_setopt — cURL 転送オプションを設定します

  • curl_share_close — cURL 共有ハンドルを閉じる

  • #curl_share_init — cURL 共有ハンドルを初期化します

  • curl_share_setopt — cURL 共有ハンドルのオプションを設定します。

  • curl_strerror — 指定されたエラー コードを説明する文字列を返します

  • curl_unescape — 指定された URL エンコード文字列をデコードします

  • curl_version — cURL バージョン情報を取得します

4。例

1.curl を使用してデータを取得します

<?php
$url = &#39;http://www.example.com&#39;;
//初始化一个 cURL 对象 
$ch  = curl_init();
//设置你需要抓取的URL
curl_setopt($ch, CURLOPT_URL, $url);
// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//是否获得跳转后的页面
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
?>

2.curl を使用して投稿し、データを取得します

<?php
function curl_post($url, $arr_data){
   $post_data = http_build_query($url_data);
   $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch,  CURLOPT_POSTFLELDS, $post_data);
    $data = curl_exec($ch);
    curl_close($ch);
    echo $data;
}
$arr_post = array(
    &#39;name&#39;=>&#39;test_name&#39;,
    &#39;age&#39;   => 1
);
curl_post("http://www.explame.com/", $arr_post);
?>

3.プロキシを使用してページをクロールします

クロールにプロキシを使用する理由Google を例に挙げると、Google のデータを短期間に頻繁に取得すると、データを取得できなくなります。 Google が IP アドレスを制限している場合は、プロキシを変更して再度クロールできます。

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://google.com"); 
curl_setopt($ch, CURLOPT_HEADER, false);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//是否通过http代理来传输
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($ch, CURLOPT_PROXY, 125.21.23.6:8080);  
//url_setopt($ch, CURLOPT_PROXYUSERPWD, &#39;user:password&#39;);如果要密码的话,加上这个  
$result=curl_exec($ch); 
curl_close($ch);
?>

4. このサイトのセッション呼び出しを継続維持する

同期ユーザーログインの場合、セッションを共有する必要があります。サイトの場合、セッション ID を http に配置する必要があります。 Requesting

<?php
$session_str = session_name().&#39;=&#39;.session_id().&#39;; path=/; domain=.explame.com&#39;;
session_write_close(); //将数据写入文件并且结束session
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIE, $session_str); 
$ret = curl_exec($ch);
curl_close($ch);
?>

end

この記事は、https://blog.csdn.net/longgeaisisi/article/details/ から転載されています。 89330576

推奨学習:

PHP ビデオ チュートリアル

以上がPHPでcurlを使用するにはどうすればよいですか? (使い方紹介)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。