Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak sprawdzić w pętli czy plik istnieje
Forum PHP.pl > Forum > Przedszkole
Diesel
Poza pętlą sprawa jest banalna, mam na to prostą funkcje:

  1. function UserPhoto() {
  2. $useravatar="images/avatars/".$_SESSION['id'].".jpg";
  3. if(file_exists($useravatar)){
  4. echo '<img class="'.'logged-avatar'.'" src="images/avatars/'.$_SESSION['id'].'.jpg"/>';
  5. }
  6. else{
  7. echo '<img class="'.'logged-avatar'.'" src="images/avatars/default.png"/>';
  8. }
  9. }


..a jak będąc w pętli for sprawdzić istnienie pliku .jpg?
mar1aczi
Dokładnie tak samo, podając odpowiedni argument (poprawną ścieżkę do pliku) do funkcji file_exists.
Diesel
Cytat(mar1aczi @ 6.12.2013, 06:33:58 ) *
Dokładnie tak samo, podając odpowiedni argument (poprawną ścieżkę do pliku) do funkcji file_exists.



Jak bym nie skonstruował funkcji wewnątrz pętli otrzymuje błędy.

Przykład:
  1. <?php
  2.  
  3. for($i=0; $i<10; $i++) {
  4.  
  5. echo ($i);
  6.  
  7. function UserPhoto() { echo ('/<br>'); }
  8.  
  9. }
  10.  
  11. ?>


Błąd:
Cytat
01
Fatal error: Cannot redeclare UserPhoto() (previously declared in test.php:7) in test.php on line 7
freemp3
W pętli funkcje trzeba wywołać a nie tworzyć.
  1. // deklaracja funkcji na początku
  2. function UserPhoto() { echo ('/<br>'); }
  3.  
  4. for($i=0; $i<10; $i++) {
  5.  
  6. echo ($i);
  7.  
  8. UserPhoto(); // tutaj tylko wywołanie funkcji
  9. }
Diesel
Nie mogę jednak sobie poradzić. Z jakiegoś powodu tablica(ze zmienią $i) $msg_sql_online[$i][author_id] występująca w pętli for nie ma zasięgu w funkcji AuthorPhoto() którą w pętli for wywołuje, aby przypisać kolejnym rekordom avatary danych userów (jesli te fizycznie istnieją na serwerze jeśli nie chce ustawić domyślny).

  1. if(isset($_SESSION['logged'])) {
  2.  
  3. function AuthorPhoto() {
  4. $authoravatar='images/avatars/'.$msg_sql_online[$i][author_id].'.jpg';
  5. if(file_exists($authoravatar)){
  6. echo ('zalogowany');
  7. }
  8. else{
  9. echo ('niezalogowany');
  10. }
  11. }
  12. for($i=0; $i<count($msg_sql_online); $i++) {
  13. echo '
  14. <div id="message">
  15. <IMG id="message-avatar" SRC="images/avatars/'.AuthorPhoto().'.jpg">
  16. </div>';
  17. }
  18. } else { instrukcje dla niezalogowanego usera }


Z góry dzięki za wskazówki nerdsmiley.png
Turson
  1. function AuthorPhoto($i) {
  2. $authoravatar='images/avatars/'.$msg_sql_online[$i]['author_id'].'.jpg';
  3.  
  4. //w pętli:
  5.  
  6. <IMG id="message-avatar" SRC="images/avatars/'.AuthorPhoto($i).'.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.