PHP Manual

PHP での cURL - URL 経由でデータをダウンロードする

15. 02. 2020

Obsah článku

PHPのライブラリ `cURL` は、海外のサーバからデータをダウンロードするのに適した方法である。

クエリに基づいてHTTPリクエストを構築し、ターゲットサーバーに送信する。ダウンロード後は、(比較的)簡単にデータを扱えるAPIを搭載している。

ネイティブの file_get_contents 関数 (これを通じて HTTP リクエストも可能) とは異なり、より優れた設定オプションを提供し、本物のブラウザのようにページやファイルをダウンロードします。

file_get_contents 関数は内部で cURL ライブラリを使用しており、それほど詳細な設定オプションはありません。

リクエストに含まれるcURLモードの検出

現在のリクエストが cUrl を介して行われたのか、それとも古典的なブラウザで行われたのかを検出することは、しばしば有用である。

PHPにはこのための直接的な実装はありませんが、簡単な関数を自作することができます。

function isCurl(): bool
{
return str_contains($_SERVER['http_user_agent'] ?? '', 'カール');
}

LinuxとそのTerminal、またはMacをお使いの場合は、このコマンドを試してみてください。

curl https://php.baraja.cz/curl

このコマンドは、このサイトに対して内部リクエストを行い、その結果を返す。

アプリケーションがcURLリクエストを検出しなかった場合、ブラウザからリクエストがあったかのようなHTMLが返されます。しかし、リクエストタイプは検出されるので、クリーンアップされたMarkdownの記事を返すことを妨げるものは何もありません。

その結果、よりクリーンなデータが得られるというメリットがあります。ブラウザで見るユーザーには整形されたHTMLを見せ、ロボットには基本的な内容だけを見せるのです。

PHPでのAPIの詳細な利用方法

cUrlの詳しい使い方を知りたい方は、常に最新の情報を提供している公式ドキュメントを読むことをお勧めします。

カジュアルな使い方としては、Guzzle というライブラリがあります。

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
3.
Status:
All systems normal.
2024