PHP のオンラインマニュアルの投稿データにあります。
<?php $remoteFile = '対象 URL(http)'; $ch = curl_init($remoteFile); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $data = curl_exec($ch); curl_close($ch); if ($data === false) { echo 'cURL failed'; exit; } $contentLength = 'unknown'; $status = 'unknown'; if (preg_match('/^HTTP\/1\.[01] (\d\d\d)/', $data, $matches)) { $status = (int)$matches[1]; } if (preg_match('/Content-Length: (\d+)/', $data, $matches)) { $contentLength = (int)$matches[1]; } echo 'HTTP Status: ' . $status . "\n"; echo 'Content-Length: ' . $contentLength; ?>
Here's the best way (that I've found) to get the size of a remote fileなんて書いてあるのですが、確かにうまくいきます。当たり前と言えばあたりまえですが、An HTTPD でログを取るとこんな感じです。<<< s=300: Fri Sep 18 23:30:20 2009 <<< HEAD /php/elenat.ttf HTTP/1.1 Host: localhost Accept: */* >>> s=300: Fri Sep 18 23:30:20 2009 >>> HTTP/1.1 200 Document follows MIME-Version: 1.0 Server: AnWeb/1.42p Date: Fri, 18 Sep 2009 14:30:20 GMT Content-Type: application/octet-stream Accept-Ranges: bytes Content-Length: 5116536 ETag: "43a96df0-4e1278" Last-Modified: Wed, 21 Dec 2005 15:00:00 GMT
レスポンスはすぐに返ってきます。実際使う場合は、curl が使えるか事前にチェックする必要がありますが、たぶん大丈夫でしょう。ですが、Windows の場合は意図的に使えるようにする必要があります(php.ini でextension=php_curl.dll)。こちらは、実際にそのへんを考慮して作ったサンプルです
|
【PHP + 通信の最新記事】
- fake sendmail for windows を使って、PHP でごく普通に( mb_send_mail で )メール送信
- PHP の cURL でファイルアップロード
- PHP : WEB でもコマンドラインでも HTTP でファイルをダウンロードする 『fget.php』
- PHP : cURL : Google Photo API の albums.list メソッドを使用して アルバム一覧データを取得する
- PHP + cURL で Google Photo API の アクセストークンを取得する
- PHP : cURL で FTP + SSL ダウンロード
- PHP の imap 関数で( Windows ローカル )、Yahoo メールのメールをさくらインターネットのメールへコピーする
- PHP の imap 関数( Windows のローカル )で、さくらインターネットのメールボックスの情報を取得する
- PHP : IMAP 関数 でまずメールのヘッダ部分を整理してログに出力する / ※ JSON 出力を追加
- ファイルを一つアップロード : FORM の target を IFRAME にして、PHP に JavaScript を書き出させて元のページにメッセージを表示させる
- Pear の Net_POP3 で、SSL(995) を使って簡単にメール受信
- PHP をコマンドプロンプトから実行して、WEB 上のデータを取得するいくつかの方法
- FormData を使用して $.ajax で送信すると、ファイルのアップロードとメール送信(ファイル添付)を一度に行えます
- ファイルのアップロードからそれを添付してメールを送るテンプレート(スケルトン)
- PHP : mb_send_mail を使用した自家用メール送信 API
- PHP で Windows標準のオブジェクト(CDO.Message)とGMail を使ってメール送信
- PHP : http 経由でファイルのサイズを取得する file_size 関数と ファイルサイズを付加した get_imagesize 関数
- 連想配列のキー部分がプロパティと一致したらセットする( メール送信用クラス )
- ローカルの PHP を使ってコマンドプロンプトより簡単にバイナリファイルをアップロードする
- PHP の cURL で ftp サーバーにファイルをアップロードする(SSLなし)