ホームページ  >  記事  >  バックエンド開発  >  PHP はカールを使用してリモート画像を取得します_PHP チュートリアル

PHP はカールを使用してリモート画像を取得します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:12:15835ブラウズ

この記事では、PHP でカールを使用してリモート イメージを取得する実装方法を紹介します。リモート イメージの収集方法を知りたい友人は、参考にしてください。

curl には php 環境のサポートが必要です。phpinfo() 関数を実行して、php.ini の「extension=php_curl.dll」の前にある「;」を削除する必要があります。または APACHE

実装コード 2
コードは次のとおりです コードをコピーします


/*
*@curl メソッドを通じて指定されたイメージをローカルに取得します
*@ 完全なイメージ アドレス
*@保存されます
*/
function getImg($url = "", $filename = "")
{

//URL 接続上の引用符を削除します
//$url = preg_replace( '/(?:^[' "]+|['"/]+$) /', '', $url );
$hander =curl_init();
$fp = fopen($filename,'wb');
curl_setopt($hander, curlopt_url、$ url);
curl_setopt($ hander、curlopt_file、$ fp); false);//データストリームの形式でデータを返し、falseの場合は直接表示されます
curl_setopt($hander,CURLOPT_TIMEOUT,60);
curl_exec($hander);
curl_close($hander);
fclose ($fp);
return true;
}

呼び出されたら、直接 getImg("/logo.jpg","upload/image.jpg")

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

コードは次のとおりですコードをコピーしてください < ?php
$url = "画像の絶対アドレス/thumbnail.jpg";

$filename = 'curl.jpg';

getImg($url, $filename);

/*

*@curl経由で仕様を取得 画像をローカルに

*@ 完全な画像アドレス
*@ 保存するファイル名
*/
function getImg($url = " ", $filename = "") {
if(is_dir(basename($filename)) ) {
echo "Dir が終了しませんでした";
return false; ]+$)/', '', $url );

$hander =curl_init();
$fp = fopen($filename,'wb');

curl_setopt($hander,CURLOPT_URL,$url);
curl_setopt($hander,CURLOPT_FILE,$fp); ($hander,CURLOPT_HEADER,0);

curl_setopt($hander,CURLOPT_FOLLOWLOCATION,1);

//curl_setopt($hander,CURLOPT_RETURNTRANSFER, false);//データはデータフローの形式で返されます。 false の場合は直接表示されます
20110622095243.jpg',

CURLOPT_FILE =>

CURLOPT_HEADER => 0,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_TIMEOUT => 60
);
curl_setopt_array($hander, $options);
*/

curl_exec($hander);
curl_close($hander );
fclose($fp);
return true;
}

?>




curl_setopt CURL 呼び出しのオプションを設定します。
boolcurl_setopt (int ch、文字列オプション、混合値)
curl_setopt() 関数は、CURL セッションのオプションを設定します。 option パラメータは必要な設定であり、value はこのオプションで指定される値です。

次のオプションの値は、long 整数 (オプション パラメーターで指定) として使用されます:

CURLOPT_INFILESIZE: ファイルをリモート サイトにアップロードするとき、このオプションはアップロードしたファイルのサイズを PHP に伝えます。

CURLOPT_VERBOSE: CURL がすべての予期しないイベントを報告するようにするには、このオプションをゼロ以外の値に設定します。

CURLOPT_HEADER: 出力にヘッダーを含める場合は、このオプションをゼロ以外の値に設定します。

CURLOPT_NOPROGRESS: PHP で CURL 転送の進行状況バーを表示したくない場合は、このオプションをゼロ以外の値に設定します。

注: PHP はこのオプションをゼロ以外の値に自動的に設定します。このオプションはデバッグ目的でのみ変更してください。

CURLOPT_NOBODY: 出力に本文部分を含めたくない場合は、このオプションをゼロ以外の値に設定します。

CURLOPT_FAILONERROR: エラーが発生した場合 (HTTP コードが 300 以上を返す場合) に PHP を表示しないようにするには、このオプションをゼロ以外の値に設定します。デフォルトの動作では、通常のページが返され、コードは無視されます。

CURLOPT_UPLOAD: PHP にアップロードの準備をさせたい場合は、このオプションをゼロ以外の値に設定します。

CURLOPT_POST: PHP に通常の HTTP POST を実行させたい場合は、このオプションをゼロ以外の値に設定します。この POST は通常の application/x-www-from-urlencoded タイプで、主に HTML フォームで使用されます。

CURLOPT_FTPLISTONLY: このオプションをゼロ以外の値に設定すると、PHP は FTP のディレクトリ名をリストします。

CURLOPT_FTPAPPEND: このオプションをゼロ以外の値に設定すると、PHP はリモート ファイルを上書きする代わりに適用します。

CURLOPT_NETRC: このオプションをゼロ以外の値に設定すると、PHP は ~./netrc ファイル内で接続先のリモート サイトのユーザー名とパスワードを検索します。

CURLOPT_FOLLOWLOCATION: このオプションをゼロ以外のヘッダー (「Location: " など) に設定すると、サーバーはそれを HTTP ヘッダーの一部として送信します (これは再帰的であることに注意してください。PHP は「Location: "」のようなヘッダーを送信します) 。

CURLOPT_PUT: HTTP を使用してファイルをアップロードするには、このオプションをゼロ以外の値に設定します。このファイルをアップロードするには、CURLOPT_INFILE および CURLOPT_INFILESIZE オプションを設定する必要があります。

CURLOPT_MUTE: このオプションをゼロ以外の値に設定すると、PHP は CURL 関数に対して完全にサイレントになります。

CURLOPT_TIMEOUT: 最大秒数として長整数を設定します。

CURLOPT_LOW_SPEED_LIMIT: 送信されるバイト数を制御する長整数を設定します。

CURLOPT_LOW_SPEED_TIME: CURLOPT_LOW_SPEED_LIMIT で指定されたバイト数を送信する秒数を制御する長整数を設定します。

CURLOPT_RESUME_FROM: バイト オフセット アドレス (転送先の開始フォーム) を含む長いパラメーターを渡します。

CURLOPT_SSLVERSION: SSL バージョンを含む長いパラメーターを渡します。デフォルトでは、PHP は独自のハードワークを実行しますが、セキュリティを強化するには手動で設定する必要があります。

CURLOPT_TIMECONDITION: 長いパラメーターを渡して、CURLOPT_TIMEVALUE パラメーターの処理方法を指定します。このパラメータは TIMECOND_IFMODSINCE または TIMECOND_ISUNMODSINCE に設定できます。これはHTTPのみの場合です。

CURLOPT_TIMEVALUE: 1970 年 1 月 1 日から現在までの秒数を渡します。この時間は、CURLOPT_TIMEVALUE オプション、またはデフォルトの TIMECOND_IFMODSINCE によって指定された値として使用されます。

次のオプションの値は文字列として扱われます:

CURLOPT_URL: これは、PHP を使用して取得する URL アドレスです。このオプションは、curl_init() 関数を使用した初期化中に設定することもできます。

CURLOPT_USERPWD: [ユーザー名]:[パスワード] の形式で文字列を渡し、PHP を使用して接続します。

CURLOPT_PROXYUSERPWD: [ユーザー名]:[パスワード] の形式で文字列を渡し、HTTP プロキシに接続します。

CURLOPT_RANGE: 指定したい範囲を渡します。 X または Y を除いた「X-Y」形式である必要があります。 HTTP 転送では、カンマ (X-Y、N-M) で区切られた複数の間隔もサポートされます。

CURLOPT_POSTFIELDS: すべてのデータを含む文字列を HTTP "POST" 操作として渡します。

CURLOPT_REFERER: HTTP リクエストの「リファラー」ヘッダーを含む文字列。

CURLOPT_USERAGENT: HTTP リクエスト内の「user-agent」ヘッダーを含む文字列。

CURLOPT_FTPPORT: ftp の「POST」コマンドで使用される IP アドレスを含む IP アドレスを渡します。この POST 命令は、指定した IP アドレスに接続するようにリモート サーバーに指示します。 この文字列には、IP アドレス、ホスト名、ネットワーク インターフェイス名 (UNIX の場合)、または「-」 (システムのデフォルトの IP アドレスを使用) を指定できます。

CURLOPT_COOKIE: HTTP Cookie を含むヘッダー接続を渡します。

CURLOPT_SSLCERT: 証明書を含む文字列を PEM 形式で渡します。

CURLOPT_SSLCERTPASSWD: CURLOPT_SSLCERT 証明書を使用するために必要なパスワードを含むパスワードを渡します。

CURLOPT_COOKIEFILE: Cookie データを含むファイルの名前を含む文字列を渡します。この Cookie ファイルは、Netscape 形式であることも、ファイルに保存されている HTTP スタイルのヘッダーのスタックであることもできます。

CURLOPT_CUSTOMREQUEST: HTTP リクエストを行う場合、GET または HEAD で使用される文字を渡します。 HTTP リクエストを実行するときに GET または HEAD の代わりに使用される文字列を渡します。これは、または別のよりわかりにくい HTTP リクエストを実行する場合に便利です。

注: サーバーがコマンドをサポートしていることを確認する前に、まだこれを実行しないでください。 。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/444584.html技術記事この記事では、curl を使用して PHP でリモート画像を取得する実装方法を紹介します。リモート画像の収集について知りたい人は、ぜひ参考にしてください。 Curl には php 環境のサポートが必要です。phpin を実行できます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。