konto usunięte

Temat: glob nie zlicza jpg'ów

Witam.
Juz nie mogę nie wiem co się dzieje .gif i .png pięknie się wyświetlają a .jpg nie chce


$files = glob("katalog/*.*");
for ($i=1; $i<count($files); $i++)
{
$num = $files[$i];
$name1 = basename($num);
$name2 = substr($name1, 0,-4);
echo '<img src="'.$num.'" alt="'.$name2.'">'."  "; }
?>


co może być przyczyną nie wyświetlania się jpgów, w kodzie pustka, nie wywala błędów...
Janusz Skudrzyk

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: glob nie zlicza jpg'ów

Jak nie wiadomo co się dzieje, to pomaga echo i print_r (chyba, że jest xdebug).

print_r( $files ) ;
...
echo $num ;


I co znaczy, że jpg się nie wyświetla ? Generuje się img z odpowiednim src, ale się nie pokazuje, czy nie ma ani śladu w kodzie po obrazkach .jpg ?

konto usunięte

Temat: glob nie zlicza jpg'ów

Moze jak glob() nie widzi jakichs plikow, to znaczy ze chmod jest nie taki jak trzeba? Porownales chmod z innymi plikami?

konto usunięte

Temat: glob nie zlicza jpg'ów

Janusz Skudrzyk:
Jak nie wiadomo co się dzieje, to pomaga echo i print_r (chyba, że jest xdebug).

print_r( $files ) ;
...
echo $num ;


I co znaczy, że jpg się nie wyświetla ? Generuje się img z odpowiednim src, ale się nie pokazuje, czy nie ma ani śladu w kodzie po obrazkach .jpg ?

nie wyświetla znaczy nie generuje się img scr z jpgiem. "printowałem" i "echowałem" to, pokazują się tylko gify i png

konto usunięte

Temat: glob nie zlicza jpg'ów

Mateusz Jaworski:
Moze jak glob() nie widzi jakichs plikow, to znaczy ze chmod jest nie taki jak trzeba? Porownales chmod z innymi plikami?

tak zmieniałam nawet chmod katalogu na 777 pliki wszystkie mają taki sam chmod, a tylko listuje mi gify i png... no jak na złość bo akurat jpgów porzebuje
Janusz Skudrzyk

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: glob nie zlicza jpg'ów

Glob pominie domyślnie pliki, w których nazwa zaczyna się od kropki. Być może przy safe_mode pominie także pliki należące do innego użytkownika.

Możesz także spróbować z http://php.net/manual/pl/function.opendir.php

konto usunięte

Temat: glob nie zlicza jpg'ów

pokaz ls -l tak zeby bylo widac nazwy plikow i userow

konto usunięte

Temat: glob nie zlicza jpg'ów

ok... sorry za zamieszanie odkryłem że jak jest jeden plik to nie wyświetla a le jak są dwa to wyświetla 1... coś pomyliłem w kodzie. :)

edit: a że akurat na gifach to ćwiczyłem a potem wrzuciłem jednego jpga i klops...Andrzej T. edytował(a) ten post dnia 02.01.11 o godzinie 00:46

konto usunięte

Temat: glob nie zlicza jpg'ów

Andrzej T.:
ok... sorry za zamieszanie odkryłem że jak jest jeden plik to nie wyświetla a le jak są dwa to wyświetla 1... coś pomyliłem w kodzie. :)

edit: a że akurat na gifach to ćwiczyłem a potem wrzuciłem jednego jpga i klops...

- for ($i=1; $i<count($files); $i++)
+ for ($i=1; $i<=count($files); $i++)

albo lepiej

+ for ($i=0; $i<count($files); $i++)

od zera pewnie lepiej, bo tam potem arraye czytasz po tym kluczu

chociaz ja bym po prostu zrobil

if(sizeof($files))
{

foreach($files as $file)
...Mateusz Jaworski edytował(a) ten post dnia 02.01.11 o godzinie 01:35

konto usunięte

Temat: glob nie zlicza jpg'ów

no właśnie od razu tak zrobiłem, ale też jest coś nie halo...

nie wyświetla się jeden plik (tzn pokazuje się pusty <img alt="" src=""> )

np na 4 pliki wyświetlają się 3 + pusty tag

--

EDIT: zamieniłem $i=1 na $i=0 przy wcześniejszym "<"

i jest już wszystko OK

dzięki
pozdrawiamAndrzej T. edytował(a) ten post dnia 02.01.11 o godzinie 01:03
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: glob nie zlicza jpg'ów

Andrzej T.:
dzięki
pozdrawiamAndrzej T. edytował(a) ten post dnia 02.01.11 o godzinie 01:03

Mateusz zrobił programistyczny czeski błąd po prostu. Powinieneś wiedzieć, że klucze tablic w PHP zaczynają się od 0.

Poczytaj o foreach w przyszłości zaoszczędzi Ci trochę czasu.

konto usunięte

Temat: glob nie zlicza jpg'ów

Andrzej T.:
Witam.
Juz nie mogę nie wiem co się dzieje .gif i .png pięknie się wyświetlają a .jpg nie chce


$files = glob("katalog/*.*");
for ($i=1; $i<count($files); $i++) [/quote]> {[quote]$num = $files[$i];
$name1 = basename($num);
$name2 = substr($name1, 0,-4);
echo '<img src="'.$num.'" alt="'.$name2.'">'."  "; }
?>


co może być przyczyną nie wyświetlania się jpgów, w kodzie pustka, nie wywala błędów...

Jeżeli już korzystasz z for to zoptymalizuj trochę.

Teraz masz

for ($i=1; $i<count($files); $i++)


czyli przy każdej iteracji w pętli wywołujesz ponownie count na tablicy. Jest to cholernie nieoptymalne rozwiązanie i przy dużej ilości danych spadnie wydajność. Rzuć okiem na ostatni test na http://www.phpbench.com/ gdzie różnica wynosi 450x.

Ustaw sobie wynik count jako zmienną i nie ponawiaj zliczania.


$filesTotal = count($files);
for ($i=1; $i < filesTotal ; $i++)


Przepraszam za offtop ale rzuciło mi się w oczy ;).Adam Piotrowski edytował(a) ten post dnia 02.01.11 o godzinie 23:23

Następna dyskusja:

Poszukuje czlowieka, nie pr...




Wyślij zaproszenie do