Bir uzak dosya yerini olup olmadığını belirlemek için PHP kullanarak?

5 Cevap

Ben bazı URL'ler ile MySQL veritabanı var. Her satır için bir URL. Her URL üzerinde benim komut dosyası vardır. Ben yapmak isteyen ben ne, dosya, bir PHP komut dosyası aracılığıyla hala orada olup olmadığını kontrol etmektir. Bu 404'd kontrol, ancak değiştirilmiş veya değiştirilmiş ise oldukça denetlemez. Bu mümkün mü? Eğer öyleyse, nasıl yapılabilir ki?

Ben uzak dosya bazı dize yankı yapma, düşünme ve yerel dosya bu dizi için sayfayı kontrol edin sahip, ama bu biraz verimsiz ve özensiz görünüyor oldu.

EDIT:, uzak dosyalar çıktı uzak kullanıcıların herhangi bir veri yok, bunlar dahili komut tetikleyebilir, böylece uzak kullanıcılar sadece beyaz bir sayfa göreceksiniz. (Kontrol komut yanı sıra, sadece bu görecekti)

5 Cevap

Bulletproof Way

  1. URL içeriğini getir.
  2. MD5() veya SHA1() karma hesaplayın.
  3. Yine URL almak ve karma değişip değişmediğini kontrol edin.

Orada (örneğin Last-Modified HTTP başlık olarak) başka yolları vardır, ama hepsi sunucular ile çalışmaz.

Peki, örneğin, belirli koşullar altında, onun md5 göndermek için dosyaya sorabilirsiniz:

if($_GET['md5hash']==true)
{ 
  echo md5($_SERVER['SCRIPT_FILENAME']);
}

Script onun md5 alma veya onun md5 farklı bir şey alma ile değiştirilir olmadığını kolayca anlayabilir, ama ben sizin için puanı ne olduğunu bilmiyorum.

sadece kullanmak

md5_file('http://path.to/file');

ve daha sonra kontrol için karma saklayın

URL'ler yerel dosyalar ise her dosya üzerinde filemtime kullanın ve tabloda modifiedtime satırda karşı zaman kontrol edebilirsiniz.

Ayrıca stat on a remote file and check the mtime kaydını kullanmak mümkün olabilir.