Uzak bir dosyanın son değiştirilme tarihini alın

8 Cevap php

Ben kıvrılma yoluyla uzak bir dosyanın son değiştirilme tarihini almak istiyorum. Herkes bunu biliyor mu?

8 Cevap

Dan php's article:

<?php
// outputs e.g.  somefile.txt was last modified: December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename));
}
?>

filemtime () burada anahtarıdır. Ama ben sunucu HTTP başlıklarını Belki ... size göndermek gerekir beri, bir remote dosyanın son değiştirilme tarihini alabilirsiniz eğer emin değilim?

PHP Eğer yerel işlevini kullanabilirsiniz get_headers():

<?php
$h = get_headers($url, 1);

$dt = NULL;
if (!($h || strstr($h[0], '200') === FALSE)) {
    $dt = new \DateTime($h['Last-Modified']);//php 5.3
}

Sen curl_setopt($handle, CURLOPT_HEADER, true) ile cevap başlıklarını alan etkinleştirebilirsiniz. Ayrıca sadece başlıkları almak için CURLOPT_NOBODY açmak, ve bundan sonra n \ r \ tarafından sonucu patlayabilir ve tek başlıklarını yorumlayabilir. Başlığı Last-Modified ilgilendiğiniz biridir

Bazen farklı üst alt kasa ile geliyor header, bu yardımcı olacaktır:

function remoteFileData($f) {
    $h = get_headers($f, 1);
    if (stristr($h[0], '200')) {
        foreach($h as $k=>$v) {
            if(strtolower(trim($k))=="last-modified") return $v;
        }
    }
}

olur şey bu iş böyle, gelen web developer forum

<? $last_modified = filemtime("content.php"); print("Last Updated - ");
print(date("m/d/y", $last_modified)); ?

// OR

$last_modified = filemtime(__FILE__);

bağlantı bazı yararlı INSITE bunları kullanabilirsiniz üzerinde sağlar

Bunu ayıklamak için CURLINFO_FILETIME seçeneği ile bitti sonra sayfayı istekte bulunduğunuzda ilk CURLOPT_FILETIME seçeneği ayarlayarak, o zaman () curl_easy_getinfo kullanın.

Sonra herhangi bir başlık ayrıştırmak ya da bir süre için bir dize dönüştürmek gerekmez.

H4kuna cevabını düzenleyerek bu oluşturulan:

$fileURL='http://www.yahoo.com';
$headers = get_headers($fileURL, 1);
$date = "Error";
//echo "<pre>"; print_r($headers); echo "</pre>";
if ( $headers && (strpos($headers[0],'200') !== FALSE) ) {
    $time=strtotime($headers['Last-Modified']);
    $date=date("d-m-Y H:i:s", $time);
}
echo 'file: <a href="'.$fileURL.'" target="_blank">'.$fileURL.'</a> (Last-Modified: '.$date.')<br>';