PHP cURL モジュール

Jun 23, 2016 pm 02:34 PM

概要:

cURL は、URL 構文を使用してコマンド ライン モードで動作するファイル転送ツールです。現在、Apple マシンには cURL が組み込まれています。 cURL は、HTTP、FTP、その他のプロトコルを幅広くサポートする包括的な送信ツールです。Thunder や Express などのダウンロード ツールのすべての機能も実現できます。 cURL 構文のサポートは PHP でも提供されます。

PHP を利用し、Daniel Stenberg によって作成された libcurl ライブラリを使用すると、さまざまな種類のプロトコルを使用してさまざまなサーバーに接続して通信できます。 libcurl は現在、http、https、ftp、gopher、telnet、dict、file、および ldap プロトコルをサポートしています。 libcurl は、HTTPS 認証、HTTP POST、HTTP PUT、FTP アップロード (これは PHP の FTP 拡張機能を通じて行うこともできます)、HTTP フォームベースのアップロード、プロキシ、Cookie、およびユーザー名 + パスワード認証もサポートしています。

cURL が必要な理由:

ファイル (URL) を読み取る一般的な方法は、file_get_contents、file などの PHP の組み込みファイル読み取り関数の一部を使用することです (記事「ファイルを読み取るための一般的な方法」を参照してください) in PHP"); しかし、これらのメソッドは単純なファイル読み取りのみを実行でき、URL へのデータの POST、プロキシ サーバーの使用、SSL プロトコルを使用した URL の読み取り、URL ログイン認証などの複雑な機能を実装できません。そして、cURL はこれらの関数のサポートを提供します。

開く方法: PHP ディレクトリにある 2 つのファイル libeay32.dll と ssleay32.dll を C:windowssystem32 ディレクトリにコピーします。 php.iniを変更します。 extension = php_curl.dll の前のセミコロンを削除します。 Apache サービスを再起動し、phpinfo を確認します。curl が有効になっていることがわかります

cURL リクエストを確立するための基本手順: 1. 初期化

curl_init メソッドを使用して cURL ハンドルを初期化します

$ch =curl_init("http: //www.example.com/");

curl_init メソッドはオプションのパラメータ URL を提供し、curl_setopt()、curl_exec()、およびcurl_close() 関数で使用する cURL ハンドルを返します。

URL がcurl_init で指定されていない場合は、curl_setopt でこの値を手動で設定する必要があります。URL が指定されている場合、CURLOPT_URL は自動的にこの値に設定されます。

2. 変数を設定する

curl_setopt メソッドを使用して cURL 送信パラメータを設定するか、curl_setopt_array を使用して一連のパラメータをバッチで設定します。

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

$ch は、curl_init が初期化されたときに返される cURL ハンドルです。

3. 実行して結果を取得します

cURL セッションを実行するには、curl_exec を使用します。成功した場合は TRUE、失敗した場合は FALSE を返します。ただし、CURLOPT_RETURNTRANSFER オプションが設定されている場合、関数は成功した場合は実行結果を返し、成功した場合は FALSE を返します。それは失敗します。

curl_exec($ch);

curl_getinfo を使用して cURL セッションに関する情報を取得することもできます。

curl_getinfo($info);

curl_getinfo によって返される配列には、次の情報が含まれます:

"url" //リソースネットワークアドレス "content_type" //コンテンツエンコーディング "http_code" //HTTP ステータスコード "header_size" //ヘッダーのサイズ "request_size" //要求されたサイズ "filetime" //ファイル作成時間 "ssl_verify_result" //SSL 検証結果 "redirect_count" //ジャンプ テクノロジ "total_time" //かかった合計時間 "namelookup_time" //DNS クエリにかかった時間 "connect_time " //接続待機時間 "pretransfer_time" //送信までの準備時間 "size_upload" //アップロードデータのサイズ "size_download" //ダウンロードデータのサイズ "speed_download" //ダウンロード速度 "speed_upload" //アップロード速度"download_content_length" //ダウンロードされたコンテンツの長さ "upload_content_length" //アップロードされたコンテンツの長さ "starttransfer_time" //転送を開始する時間 "redirect_time" //リダイレクトには 4 時間がかかります。 cURL セッションを閉じます

curl_close を使用しますcURL セッションを閉じ、すべてのリソース (cURL ハンドル $ch などを含む) を解放します。

curl_close($ch);

完全な例は次のとおりです:

<?php    // 1. 初始化    $ch = curl_init("http://www.baidu.com");    // 2. 设置选项    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  //将curl_exec()获取的信息以文件流的形式返回,而不是直接输出,如果没有设置CURLOPT_RETURNTRANSFER,curl_exec($ch)将直接输出返回内容。
ログイン後にコピー
 // 3. 执行会话并获取内容    $output = curl_exec($ch);  //或者使用curl_multi_getcontent()获取会话返回的内容    echo $output;    $info = curl_getinfo($ch);    print_r($info);    // 4. 关闭curl会话    curl_close($ch);?>
ログイン後にコピー



もちろん、curl_errorを使用してセッションエラー情報を取得することもできます。

if($output === false)//注意是三个等号,表示检查返回值是boolean类型,如果是两个等号,返回值为空字符串也会被认为是false    echo 'cURL error:'.curl_error($ch);
ログイン後にコピー

例えば、Alipay のホームページに直接アクセスします。 Alipay のホームページは SSL プロトコルに基づいているため、直接アクセスすると証明書エラーが表示されます。データを URL に POST します

cURL error:SSL certificate problem, verify that the CA cert is OK. Details:error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
ログイン後にコピー
<?php    // 1. 初始化    $ch = curl_init("http://www.baidu.com");    // 2. 设置代理服务器    curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:8888');    // 3. 执行会话    curl_exec($ch);    // 4. 关闭curl会话    curl_close($ch);?>
ログイン後にコピー

ブラウザのユーザー エージェントを使用します

<?php    //POST数据    $curlPost = array(        'name'=>'myname',        'pwd'=>'mypassword'    );    //或者 $curlPost = 'name=myname&pwd=mypassword';
ログイン後にコピー

SSL プロトコルの URL にアクセスします

  //初始化    $ch = curl_init("http://localhost/SP/getpost.php");    //设置    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    curl_setopt($ch, CURLOPT_POST, 1);    //设施post方式提交数据    curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);    //设置POST的数据    //执行会话并获取内容    $output = curl_exec($ch);    echo $output;    //关闭curl会话    curl_close($ch);?>
ログイン後にコピー


cURL には、ブログのフレンドリー リンクが有効かどうかを確認するなど、他にも多くの実用的な用途があります。ここでは、curl_getinfo() 関数によって返される http_code 値を使用する必要があります。また、ファイルのアップロード機能なども実装できます。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? Apr 06, 2025 am 12:02 AM

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

PHPのさまざまなエラータイプを説明します(通知、警告、致命的なエラー、解析エラー)。 PHPのさまざまなエラータイプを説明します(通知、警告、致命的なエラー、解析エラー)。 Apr 08, 2025 am 12:03 AM

PHPには4つの主要なエラータイプがあります。1。notice:わずかなものは、未定義の変数へのアクセスなど、プログラムを中断しません。 2。警告:通知よりも深刻で、ファイルを含むなど、プログラムを終了しません。 3。ファタラー:最も深刻なのは、機能を呼び出すなど、プログラムを終了します。 4。ParseError:構文エラーは、エンドタグの追加を忘れるなど、プログラムの実行を防ぎます。

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

HTTPリクエストメソッド(取得、投稿、配置、削除など)とは何ですか?それぞれを使用する必要がありますか? HTTPリクエストメソッド(取得、投稿、配置、削除など)とは何ですか?それぞれを使用する必要がありますか? Apr 09, 2025 am 12:09 AM

HTTPリクエストメソッドには、それぞれリソースを取得、送信、更新、削除するために使用されるGET、POST、PUT、および削除が含まれます。 1. GETメソッドは、リソースを取得するために使用され、読み取り操作に適しています。 2. POSTメソッドはデータの送信に使用され、新しいリソースを作成するためによく使用されます。 3. PUTメソッドは、リソースの更新に使用され、完全な更新に適しています。 4.削除メソッドは、リソースの削除に使用され、削除操作に適しています。

PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか? PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか? Apr 17, 2025 am 12:06 AM

PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHP 7.4で導入された矢印関数(短い閉鎖)を説明します。 PHP 7.4で導入された矢印関数(短い閉鎖)を説明します。 Apr 06, 2025 am 12:01 AM

矢印関数はPhp7.4で導入され、短い閉鎖の単純化された形式です。 1)=>演算子を使用して定義され、機能を省略し、キーワードを使用します。 2)矢印関数は、キーワードを使用せずに現在のスコープ変数を自動的にキャプチャします。 3)コールバック関数と短い計算でしばしば使用され、コードのシンプルさと読みやすさを改善します。

アクション中のPHP:実際の例とアプリケーション アクション中のPHP:実際の例とアプリケーション Apr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHP:Web開発の重要な言語 PHP:Web開発の重要な言語 Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

See all articles