Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] funkcja ereg, funkcja ereg
seba_pt
post 20.10.2008, 08:59:41
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 14.10.2008

Ostrzeżenie: (0%)
-----


witam wszystkich,

Mam problem z kodem w php, chodzi o to ze cos zrobilem zle i nie dziala.

  1. <?php
  2. while ($plik = readdir($katalog)) {
  3.    if (ereg ("gif$|.jpg$", $plik) ) {$zdjecia[$i++] = $plik;}
  4. }
  5. closedir($katalog);
  6. foreach($zdjecia as $value)
  7.    echo '<p> ... </p>';
  8. ?>


wyswietlany jest blad w instrukcji foreach.

czy ktos moze orietuje sie co robie zle?

zapomnialem dodac ze jak usune funkcje ereg, foreach dziala


Ten post edytował batman 20.10.2008, 09:20:45
Powód edycji: poprawiłem bbcode ~batman


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
jareeny
post 20.10.2008, 09:08:22
Post #2





Grupa: Zarejestrowani
Postów: 226
Pomógł: 23
Dołączył: 2.10.2007
Skąd: Słupsk

Ostrzeżenie: (0%)
-----


Podaj treść błędu bo tak nie lubię pewnie jak większość 'coś zrobiłem źle i nie dziala'.

Pozdrawiam


--------------------
banan wszyscy.
Go to the top of the page
+Quote Post
guilty82
post 20.10.2008, 09:13:59
Post #3





Grupa: Zarejestrowani
Postów: 176
Pomógł: 31
Dołączył: 26.03.2007

Ostrzeżenie: (0%)
-----


Prawdopodobnie do petli foreach jest przesylana zla lub pusta tablica
uzyj
  1. <?php
  2. print_r($zdjecia);
  3. ?>


Ten post edytował guilty82 20.10.2008, 09:27:05
Go to the top of the page
+Quote Post
batman
post 20.10.2008, 09:23:25
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




  1. <?php
  2. ereg (".+.gif$|.+.jpg$", $plik)
  3. ?>

To powinno załatwić sprawę. Pisane na szybkiego, więc mógł się wkraść błąd.
Poza tym powinieneś przed pętlą foreach sprawdzać czy tablica zawiera jakieś dane.

edit
Błąd się wkradł winksmiley.jpg
Teraz powinno działać.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
seba_pt
post 20.10.2008, 09:42:27
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 14.10.2008

Ostrzeżenie: (0%)
-----


guilty82, masz racje

wyswietla: Invalid argument supplied for foreach()

da sie to jakos rozwiazac, probowalem deklarowac wczesniej zmienna jako tablice, ale wciaz to samo.



dzieki Batman zaraz sprawdze,

wybaczcie ale wciaz ten sam blad wyswietla, nie rozumiem:(


--------------------
Go to the top of the page
+Quote Post
batman
post 20.10.2008, 09:50:48
Post #6





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




  1. <?php
  2. $i = 0;
  3. $zdjecia = array();
  4. while ($plik = readdir($katalog)) {
  5.    if (ereg (".+.gif$|.+.jpg$", $plik)) {
  6.        $i++;
  7.        $zdjecia[$i] = $plik;
  8.    }
  9. }
  10. closedir($katalog);
  11.  
  12. if(count($zdjecia) > 0) {
  13.    foreach($zdjecia as $value) {
  14.        echo '<p> ... </p>';
  15.    }
  16. }
  17. else {
  18.    echo 'Brak zdjęć';
  19. }
  20. ?>


Jeśli wyświetli "Brak zdjęć" to znaczy, że nie masz zdjęć w wybranym katalogu lub walnięta jest regułka. Jeśli nadal będzie pokazywał się błąd z foreach, to
  1. <?php
  2. var_dump($zdjecia);
  3. ?>
i wklej to co się pokaże.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
webdice
post 20.10.2008, 09:52:33
Post #7


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Nie lepiej skorzystać z glob" title="Zobacz w manualu PHP" target="_manual?
Go to the top of the page
+Quote Post
guilty82
post 20.10.2008, 09:53:57
Post #8





Grupa: Zarejestrowani
Postów: 176
Pomógł: 31
Dołączył: 26.03.2007

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $katalog = opendir("pliki/");
  3. $zdjecia = array();
  4.  
  5. while (false !== ($plik = readdir($katalog))) {
  6.   if (ereg(".+.gif$|.+.jpg$", $plik)) $zdjecia[] = $plik;
  7. }
  8. closedir($katalog);
  9. foreach($zdjecia as $value)
  10.   echo $value;
  11. ?>
Go to the top of the page
+Quote Post
seba_pt
post 21.10.2008, 09:26:19
Post #9





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 14.10.2008

Ostrzeżenie: (0%)
-----


dzieki sprawdze i sie odezwe. pozdr

probowalem obydwu sposobow po funkcji ereg wyrzuca: array(0) { }

a potem:

Brak zdjec

sprobuje z glob

dzieki



problem rozwiazal sie z glob(), dzieki Webdice za podpowiedz, choc nie wiem dlaczego nie dziala z filtrowaniem plikow jest lepej bo wyswietla same pliki.

moze ktos zna jeszcze inne rozwiazania.

dzieki


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 19:44