Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]IF file_exists w pętli while
Forum PHP.pl > Forum > Przedszkole
casperii
Panowie jak wykonać poprawnie sprawdzanie czy istnieje plik w pętli while?
Robię to tak ale coś nie działa:

  1. $i = 1;
  2. while($row = $query->fetch_array(MYSQL_ASSOC)){
  3. $nr_user = $row['id_user'];
  4. $adres_photo = 'photo/'.$nr_user.'/'.$nr_user.'.jpg';
  5. if(file_exists($adres_photo)){
  6. $ShowPhoto = '<img src="'.$adres_photo.'">';
  7. }else{
  8. print 'nie ma';
  9. }
  10. print 'Użytkownik: '.$nr_user.' ';
  11. //print 'co: '.$adres_photo.' ';
  12. $i++;
  13. }


cały czas pokazuje , że nie ma chociaż jest dany plik.
jak wyświetlam printem co jest pod adresem_photo to pokazuje dobrze
Pyton_000
a czy na pewno jest plik w ścieżce WZGLĘDNEJ do uruchamianego skryptu?

Zrób sobie w pętli
  1. var_dump(getcwd() . '/'.$adres_photo);

i sprawdź czy aby na pewno ścieżka jest poprawna.
casperii
@Pyton_000 katalog jest w domenie głównej. Skrypt działa na subdomenie z odwołaniem http://www.nazwa.pl/photo/
Jeżeli nie sprawdzam pliku tylko wyświetlam ścieżkę to w pętli pokazuje poprawnie.
Wstawienie kodu który podałeś wyświetla coś na styl:
/home/nazwa/public_html/subdomena/http://www.nazwa.pl/photo/304894495/304894495.jpg
Pyton_000
czyli "photo/304894495/304894495.jpg" to Twój obrazek a "/home/nazwa/public_html/subdomena/http://www.nazwa.pl" katalog? Nie możliwe... pokaż dokładnie co zwraca to polecenie
casperii
Nie będę reklamować tutaj domeny.
Główna domena jest www.costamcos.pl
Panel admina www.subdomena.costamcos.pl

print $photo_adres pokazuje:
http://www.costamcos.pl/photo/304894495/304894495.jpg

natomiast var_dump(getcwd() . '/'.$adres_photo); pokazuje :

string(86) "/home/nazwa_konta/public_html/subdomena/http://www.costamcos.pl/photo/304894495/304894495.jpg" string(86)

@Pyton_000 czyli co file_exsist muszę sprawdzać w sposób linuxowy (?) home/....
Pyton_000
nie, masz spiep.... adres fotki... Po co dawać pełną nazwę domenową w BD.

Przemiel ten adres przez "parse_url()" i wyciągnij query, i potem sprawdzaj czy plik istnieje.
casperii
Adres nie może być spiep... bo jak skopiuje to co mi pokazuje zmienna $adres_photo to jest ok. Coś go boli w tym file_exsist.
Adres pełny muszę podać bo jak przejdę inaczej z subdomeny do domeny głównej?

@Pyton_000 jeśli w file_exsist dam coś takiego:
  1. $adres_photo = '/home/kontoWWW/public_html/photo/'.$nr_user.'/'.$nr_user.'.jpg';
  2. if(file_exists("".$adres_photo."")){
  3.  
  4. ...
  5. }


to działa. Dziwne.
Pyton_000
Przecież mówię że masz "http://...."
a file_existst szuka pliku w systtemie plików, więc logiczne że nie masz takiego pliku... Dałem Ci rozwiązanie.
casperii
@Pyton_000 chyba coś nie umiejętnie to robię:

  1. $adres_photo = 'http://www.costamcos.pl/photo/'.$nr_user.'/'.$nr_user.'.jpg';
  2. $adres_photo1 = parse_url($adres_photo, PHP_URL_QUERY);
  3. $xx = $adres_photo1;


var_dump(getcwd() . '/'.$xx);
pokazuje:

"/home/NazwaKonta/public_html/subdomena/"
Pyton_000
nie Query a PHP_URL_PATH. Mój błąd, ale chyba sam mogłeś to zweryfikować.
casperii
@Pyton_000 też to nic nie daje:

  1. $adres_photo1 = parse_url($adres_photo, PHP_URL_PATH);
  2. $xx = $adres_photo1;
  3. var_dump(getcwd() . '/'.$xx);


string(68) "/home/NazwaKonta/public_html/subdomena//photo/304894495/304894495.jpg"

cały czas odwołuje się do subdomeny, a przecież folder photo jest w głównej domenie smile.gif
viking
Jeżeli wykonujesz skrypt na subdomenie to chyba oczywiste że poda bieżący katalog? Zmień katalog na właściwy za pomocą http://fi2.php.net/manual/en/function.chdir.php
casperii
@viking ja to wiem, dlatego jak pisałem wyżej to w ten sposób działa :

$adres_photo = '/home/NazwaKonta/public_html/photo/'.$nr_user.'/'.$nr_user.'.jpg';

Podanie adresu w formie http nie działa:
$adres_photo = 'http://www.costamcos.pl/photo/'.$nr_user.'/'.$nr_user.'.jpg';

@Pyton_000 twierdzi, że można to zrobić przy pomocy parse_url ale nie idzie.


Dobra Panowie, czasami najprostsze rzeczy są najłatwiejsze:)
Rozwiązanie:

  1. $adres_photo = '../photo/'.$nr_user.'/'.$nr_user.'.jpg';
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.