2014/7/31 現在、さくらインターネットの標準の PHP バージョンが 5.4.29 で、cURL が 7.36.0 ですが、このバージョンもオプションの意味合いに関係があります。 curl_setopt 上のリンクは、cURL のオプションの一覧です。 CURLOPT_BINARYTRANSFER が必要無くなっています PHP 5.1.3 以降では、このオプションは何の効果も無いとあります。 CURLOPT_RETURNTRANSFER を使うのみでいいそうです。 CURLOPT_RETURNTRANSFER TRUE を設定すると、curl_exec() の返り値を 文字列で返します。http で WEB ページを呼び出した結果が必要な場合に設定します。FTP の処理などでは、特に何も結果はありません。 CURLOPT_SSL_VERIFYHOST で値1 は使え無い 『値 1 は、cURL 7.28.1 以降では使えなくなりました』とありますが、通常今まで PHP では false を指定して処理しています。テストでは、仮に true や 2 を指定しても動作しているようですが・・・。 この値は、SSL を使用する時に設定しますが、対となる CURLOPT_SSL_VERIFYPEER というオプションがあり、これこそ false にしないと動作しません。 CURLOPT_SSL_VERIFYPEER SSL を使用する際に設定します。 FALSE を設定すると、cURL はサーバー証明書の検証を行いません。cURL 7.10 以降、デフォルト値は TRUE なので、false に明示的に設定する必要があります。 CURLOPT_POSTFIELDS http でファイルをアップロードする際に使用します。ファイルを送信するには、ファイル名の先頭に @ をつけてフルパスを指定します PHP 5.2.0 以降、このオプションに @ プレフィックスつきでファイルを渡したときは value が配列でなければならなくなりました$data = array( 'target' => '@' . realpath("./lightbox_a.jpg") ); curl_setopt($curl, CURLOPT_POSTFIELDS, $data );PHP 5.5.0 以降、@ プレフィックスは非推奨になりました。 また、ファイルを CURLFile で送信できるようになりました。 @ プレフィックスを無効化して、 @ で始まる値を安全に渡せるようにするには、 CURLOPT_SAFE_UPLOAD オプションを TRUE と設定します。 CURLOPT_VERBOSE デバッグトレースしたい時に使用。CURLOPT_STDERR で指定したファイルに出力されます$handle = fopen("./debug.txt", "w"); curl_setopt($curl, CURLOPT_STDERR, $handle);CURLOPT_WRITEHEADER 転送のヘッダ部分が書き込まれるファイルを指定します$handle = fopen("./ret_header.txt", "w"); curl_setopt($curl, CURLOPT_WRITEHEADER, $handle);CURLOPT_CONNECTTIMEOUT 接続の試行を待ち続ける秒数。いつも、30 ぐらいでテストしています。 ( 0 だと、タイムアウトなし ) CURLOPT_FTP_SSL マニュアル本文には無いけれど、投稿部分に記述があり、実際にそれで動作する事を確認しました。curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_ALL);CURLFTPSSL_NONE、CURLFTPSSL_TRY、CURLFTPSSL_CONTROL、CURLFTPSSL_ALL があるようです。 CURLOPT_HEADER TRUE を設定すると、ヘッダの内容も出力します。ですが、通常必要無いので false にします。 CURLOPT_URL 呼び出す対象です。http:// であったり、https:// であったり、ftp:// であったりします。ftp で SSL を使用する場合は、CURLOPT_FTP_SSL で指定して動作しています。https:// の場合は、CURLOPT_SSL_VERIFYPEER と CURLOPT_SSL_VERIFYHOST だけで動作します。(FTP でも指定します) CURLOPT_POST TRUE を設定すると、HTTP POST を行います。POST は、 application/x-www-form-urlencoded 形式で 行われます(一般的なものです)。データは、CURLOPT_POSTFIELDS で連想配列にして設定します CURLOPT_HTTPHEADER 設定する HTTP ヘッダフィールドの配列。 array('Content-type: text/plain', 'Content-length: 100') 形式です。 CURLOPT_FILE FTP で、転送内容が書き込まれるファイル。$fp = fopen("./target.zip","w"); curl_setopt($ch, CURLOPT_FILE, $fp);CURLOPT_PUT http の PUT コマンドや、FTP のアツプロード時に使用する( true にする )。ファイルアップロードは、CURLOPT_INFILESIZE と、CURLOPT_INFILE が必要になります$file_path = "./winofsql.png"; curl_setopt($curl, CURLOPT_INFILESIZE, filesize ( $file_path )); $handle = fopen($file_path, "r"); curl_setopt($curl, CURLOPT_INFILE, $handle);CURLOPT_FOLLOWLOCATION TRUE を設定すると、サーバーが HTTP ヘッダの一部として送ってくる "Location: " ヘッダの内容をたどります (これは再帰的に行われます)。よって、リダイレクトを自動化したい場合、つまり最終的な結果だけ欲しい場合に使用します。 関連する記事 PHP の cURL でファイルアップロード PHP : cURL で FTP + SSL ダウンロード PHP の cURL で ftp サーバーにファイルをアップロードする(SSLなし) ローカルの PHP を使ってコマンドプロンプトより簡単にバイナリファイルをアップロードする PHP : リモートのファイルサイズを取得する
|
【PHPの最新記事】
- PHP : 画像を返す処理( readfile ) と画像を縮小する処理( GD )
- PHP における標準的なテスト用アップロードのテンプレート
- PHP : MySQL から JSON 文字列を返す自作(テスト用) API テンプレート
- ImageMagick を Windows(32ビット)の PHP で利用する
- PHPで、ベタベタな日付チェック。汎用的とも言うw
- PHP でカタカナのフリガナ入力のチェック
- TCPDF で罫線を引く
- フリーフォントを使って PHP 画像(GD)として埋め込むアクセスカウンターの DB 処理部分
- フリーフォントを使って PHP 画像(GD)として埋め込むアクセスカウンターの画像出力部分の作成
- PHP + GD : 四角形への DropShadow
- PHP : ログインとブラウザの当日日付データ
- hash_hmac は秘密鍵があるので、辞書の総当りとかでパスワードは解りませんから。パスワード抜かれるのは、フィッシングがスパイウェアか、本人が口に出した場合ですね。
- すごく当たり前の事なんですが、UTF-8N で保存されたテキストファイルをメモ帳で変更して保存したら先頭に EF BB BF という爆弾が仕掛けられるのでダメですよ
- 5秒毎にリロードする PHP ページ
- 実用的かどうかは置いておいて、修正画面の日付入力に jQuery のカレンダーを使用する
- PHPで使用する為にフォント(.TTC)の分解
- PHP : GD で Windows のビットマップを扱う
- 【PHP】 <?=$value?> ではない変数埋め込み手法
- PHPでサービス停止( extension=php_com_dotnet.dll )
- PHP : コマンドライン php(cli) で10進数と16進数の変換