login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Snippets > remote_file_exists

remote_file_exists

Auteur: Wim - 21 oktober 2007 - 21:23 - Gekeurd door: marten - Hits: 4075 - Aantal punten: (0 stemmen)




Hetzelfde als file_exists, maar dan voor remote files.
gebruik:
remote_file_exists(par1, par2[, par3])
par1: domein, zonder http://, enkel bvb sitemasters.be of www.sitemasters.be
par2: het bestand, vanaf de root van het domein gezien. bvb /index.php (= http://www.sitemasters.be/index.php)
par3: evenuteel een andere poort. Standaard 80
return waarde: true/false

Greetings,
GDX^

fixes:
- $port variabele toch ook maar in het script gebruikt
- par4 toegevoegd: $get. Werken we met het GET (true) of met het HEAD (false, default) commando? HEAD haalt niet het volledige bestand op, maar kan evt gecached en verouderd zijn!
- volledige eerste regel wordt gecontroleerd wegens conflicten

Code:
  1. <?php
  2. function remote_file_exists ($domein, $path, $port = 80, $get = false)
  3. {
  4. $path = (substr($path, 0, 1) != '/') ? '/'.$path : $path;
  5.  
  6. $sock = fsockopen($domein, $port, $errno, $errstr, 5); //5s timeout
  7. if (!$sock)
  8. return false;
  9.  
  10. $cmd = ($get === true) ? "GET ".$path." HTTP/1.1\r\n" : "HEAD ".$path." HTTP/1.1\r\n";
  11. $cmd .= "Host: ".$domein."\r\n";
  12. $cmd .= "Connection: Close\r\n\r\n";
  13.  
  14. fwrite($sock, $cmd);
  15. $output = NULL;
  16. while (!feof($sock))
  17. $output .= fgets($sock, 128);
  18.  
  19. fclose($sock);
  20.  
  21. if(preg_match('#HTTP/1.1 200 OK#', $output))
  22. return true;
  23. else
  24. return false;
  25. }
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (13)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.02s