ホームページ ウェブフロントエンド jsチュートリアル PHP_javascript スキルにおける CURL のいくつかの古典的な応用例

PHP_javascript スキルにおける CURL のいくつかの古典的な応用例

May 16, 2016 pm 04:18 PM
curl php

1. cURL リクエストの基本手順:

(1)初期化
(2) URL
などのオプションを設定します (3) HTML文書の内容を実行して取得する
(4) cURL ハンドルを解放

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

//1. 初期化
$ch =curl_init();

//2. URL を含むオプションを設定します
curl_setopt($ch, CURLOPT_URL, "http://www.cnblogs.com/it-cen/");

//curl_exec() で取得した情報を直接出力するのではなく、ファイル ストリームの形式で返します
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//ヘッダファイル情報は起動時にデータストリームとして出力されます
curl_setopt($ch, CURLOPT_HEADER, 1);

//3. HTML ドキュメントのコンテンツを実行して取得します
curl_exec($ch);

//4. ハンドルを解放します
curl_close($ch);

echo $ch;

?>

注: 2 番目のステップが最も重要で、curl_setopt() 関数です

エラーをチェックするステートメントを追加できます。ここでは空の出力とブール値 false を区別するために「===false」が使用されていることに注意してください。

コードをコピーします コードは次のとおりです:
$output =curl_exec($ch);

If ($output === false) {
echo "cURL エラー:".curl_error($ch);
}

curl_getinfo() 関数は、cURL の実行後にこのリクエストに関連する情報を返します。これはデバッグやトラブルシューティングに役立ちます。

コードをコピーします コードは次のとおりです:
curl_exec($ch);
$info =curl_getinfo($ch);
echo '
';<br>
print_r($info);
echo '
';


返されたデータ


コードをコピー コードは次のとおりです: 配列
(
[URL] => http://www.cnblogs.com/it-cen/
[コンテンツタイプ] => charset=utf-8
[http_code] => 200
[ヘッダーサイズ] => 312
[リクエストサイズ] => 61
[ファイル時間] => -1
[ssl_verify_result] => 0
[リダイレクト数] => 0
[合計時間] => 0.172
[名前検索時間] => 0.016
[接続時間] => 0.063
[転送前時間] => 0.063
[サイズ_アップロード] => 0
[size_download] => 14658 //要求されたデータ サイズ [speed_download] => 85220
[速度_アップロード] => 0
[ダウンロードコンテンツの長さ] => 14658
[アップロードコンテンツの長さ] => 0
[転送開始時間] => 0.125
[リダイレクト時間] => 0
[証明書情報] => 配列
(
)

[リダイレクト URL] =>
)




2. この情報は、デバッグに非常に役立ちます
。たとえば、cURL がクロールしている場合、ネットワークやその他の理由により、クロールされたデータが不完全であることがよくあります。ファイルサイズを計算し、curl_getinfo() で取得したファイルサイズと比較します。サイズが等しい場合はダウンロードが正しいと見なされ、そうでない場合はダウンロードが繰り返されます。

画像を取得する例を見てみましょう:


コードをコピー

コードは次のとおりです:

header("Content-Type: image/png");

//1. 初期化
$ch =curl_init();

//2. URL を含むオプションを設定します
curl_setopt($ch, , CURLOPT_URL, "http://img04.taabaocdn.com/tfscom/TB1omaTHXXXXXajXVXXtKXbFXXX.png");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);

//3. コンテンツを実行して取得します
$res =curl_exec($ch);

//情報を取得します
$info =curl_getinfo($ch);

//4. リソースを解放します
curl_close($ch);

file_put_contents("d:/aa.png", $res);

$size = filesize("d:/aa.png");

if ($size != $info['size_download']) {
echo "ダウンロードしたデータは不完全です。もう一度ダウンロードしてください。";
} else {
echo "データのダウンロードが完了しました";
}


?>

3. POST メソッドを使用して cURL

でデータを送信します

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

$ch =curl_init();

$data = array('name'=>'kelly', 'age'=>27, 'sex'=>1);

curl_setopt($ch, CURLOPT_URL, "http://localhost.post.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//投稿に設定します
curl_setopt($ch, CURLOPT_POST, 1);
//
を post 変数に追加します curl_setopt($ch, CURLOPT_POSTFIELDS,$data);

$res =curl_exec($ch);

curl_close($ch);

echo $res;


?>

この方法を使用して、メッセージを残すことをシミュレートすることも、水を入れるロボットに座ることもできます。

4. cURL を使用してファイルをアップロードします

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

//アップロードされたデータをリクエストします
$data = array('name'=>'beauty', "upload"=>"@a.zip");

$ch =curl_init();

curl_setopt($ch, CURLOPT_URL, "http://127.0.0.1/Socket/upload_file.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$res =curl_exec($ch);

curl_close($ch);

echo $res;

?>

注: ファイルを送信するときは、ファイル名の前に @ を付け、フルパスを使用してください

5. cURL設定項目

実際、cURL には多くの設定オプションがあります。これらのオプションは、setopt() を通じて設定されます。これが読者の役に立つことを願っています。今後は cURL を使用してください:


CURLOPT_AUTOREFERER: location: に基づいてリダイレクトする場合、ヘッダーに Referer: 情報を自動的に設定します

CURLOPT_COOKIESESSION: 有効にすると、cURL はセッション Cookie を厳密に渡し、他の Cookie を無視します

CURLOPT_HEADER: ヘッダー ファイル情報をデータ ストリームとして出力します

CURLOPT_INFILESIZE: アップロードされるファイルのサイズをバイト単位で設定します

CURLOPT_MAXCONNECTS: 許可される接続の最大数

CURLOPT_MAXREDIRS: HTTP リダイレクトの最大数を指定します

CURLOPT_COOKIE: HTTP リクエストの「cookie:」部分の内容を設定します。複数の cookie の後にセミコロンが続き、セミコロンの後にスペースが入ります。

CURLOPT_POSTFIELDS: すべてのデータは HTTP プロトコルの「POST」操作を使用して送信されます。ファイルを送信するには、ファイル名の前に @ プレフィックスを追加し、フルパスを使用します。

......

より具体的な設定項目については、PHP マニュアルを参照してください

cURL は非常に強力なライブラリであり、PHP に固有のものではありません。

このブログ投稿でいくつかの古典的な cURL の例を学習することで、読者が何かを得られることを願っています。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles