2016年12月18日日曜日

phpで指定したURLのファイルの最終更新日時を取得する方法

サンプルコードは以下の通りです。

ソフトバンクのバナー画像(http://m.online-shop.mb.softbank.jp/mobile/set/common/p/img/int_inc/special/logo-white.png)の最終更新日時を取得するサンプルです。

// ソケット接続開始(引数にはurlとポートを指定)
$fp = @fsockopen("http://m.online-shop.mb.softbank.jp", 80);

if (!$fp) {
    return false;
}

$request = 'GET ' . "mobile/set/common/p/img/int_inc/special/logo-white.png" . " HTTP/1.1\r\n";

// もしベーシック認証が存在する場合は、以下のように指定する
//  $request .= 'Authorization: Basic ' . base64_encode($user . ':' . $pass) . "\r\n";

fwrite($fp, $request);
fwrite($fp, 'Host: http://m.online-shop.mb.softbank.jp\r\n');
fwrite($fp, "Connection: Close\r\n");
fwrite($fp, "\r\n");

while (!feof($fp)) {
    $buf = fgets($fp, 4096);
    if (preg_match('/^([^:]+):(.+)$/', $buf, $matches)) {
        $name  = $matches[1];
        $value = trim($matches[2]);
        if ($name == 'Last-Modified') {
            // 最終更新日時を取得する
            $lastModified = $value;
            break;
        }
    }
}
fclose($fp);

0 件のコメント:

コメントを投稿