Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzanie czy istnieje plik :(
Forum PHP.pl > Forum > PHP
pieto
Sobie problem taki mam: winksmiley.jpg
  1. <?php
  2.  
  3. $host = 'upload.wikimedia.org';
  4. $file = 'wikipedia/pl/f/f2/Gogfdfh1.jpg';
  5. $fp = @fsockopen( $host, 80, $errno, $errmsg, 3 );
  6.  
  7. if( !$fp ){
  8.  
  9.  $exist = false;
  10.  
  11. }else{
  12.  
  13.  fputs( $fp, &#092;"GET /$file HTTP/1.1rn\" );
  14.  fputs( $fp, &#092;"Host: $hostrn\" );
  15.  fputs( $fp, &#092;"Content-type: application/x-www-form-urlencodedrn\" );
  16.  fputs( $fp, &#092;"Connection: closernrn\" );
  17.  
  18.  $exist = true;
  19.  @fclose( $fp );
  20. }
  21. echo &#092;"Plik $host/$file \".( $exist == true ? 'istnieje' : 'nie istnieje' );
  22. echo '<br>';
  23.  
  24.  
  25. ?>

zawsze zwraca true sad.gif czy to dlatego ze jest wyswietlana strona html 404 ?
mozna to jakos obejsć - pobierane muszą być tylko obrazki

Następny problem taki ze jest ze 100 kombinacji urli, czyli zalezy mi zeby uzyskac jak najlepszy czas odpowiedz ...

z gory dzieki
netzah
Odpowiedz od serwera (o ile taki istnieje) dostaniesz zawsze - nawet nie musi byc to strona 404, ale zawsze odbierzesz naglowki http. Jezeli chcesz sciagac pliki mozesz to zrobic za pomoca file_get_contents($url) i tyle. Co do czasu odpowiedzi - masz zamiar sciagac te 100 url co sekunde, ze jest to takie istotne?
Zajec
http://pl.php.net/manual/pl/function.fsockopen.php

Otwórz połączenie z serwerem i wyślij zapytanie o dany plik (tak jak to robisz). Potem pobiera kolejne linie odpowiedzi serwera tak długo, aż dostaniesz tą z MIME type.

Jeśli będzie image/jpeg => Pod tym adresem znajduje się obrazek
Jeśli będzie text/html => Pod tym adresem jest tylko strona informująca o braku pliku
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.