Strona 1 z 1
Co jest źle w tym kodzie?
: pt lut 18, 2005 5:06 pm
autor: Artos_paj
Kod: Zaznacz cały
<?
$dir = "/usr/krasnal/www/artos/news/";
$pliki = opendir($dir);
while (false !== ($wyswietl = readdir($pliki))) {
$echo = "<ul>";
$echo .= "<li>$wyswietl";
$echo .= "</ul>";
echo "$echo";
}
if (is_file($wyswietl) {
$rozmiar = filesize($wyswietl);
$plik = readfile($wyswietl, $rozmiar) or die("Nie udało się odczytać danych z pliku!");
echo "$plik";
}
closedir($pliki);
?>
Skrypt ma pobierać nazwy wszystkich plików z katalogu i wyświetlać ich zawartość na stronie WWW. Takie są zamierzenia, ale coś nie wychodzi

Co jest tu źle??
Re: Co jest źle w tym kodzie?
: pt lut 18, 2005 8:08 pm
autor: Lukar
zauwaz ze zamykasz pętle while zanim wyswietlisz zawartosc pliku! W ten sposob on wylistuje Ci pliki ale zawartosc wyswietli tylko ostatniego. Powinno byc tak:
[php]<?
$dir = "/usr/krasnal/www/artos/news/";
$pliki = opendir($dir);
while (false !== ($wyswietl = readdir($pliki))) {
$echo = "<ul>";
$echo .= "<li>$wyswietl";
$echo .= "</ul>";
echo "$echo";
if (is_file($wyswietl) {
$rozmiar = filesize($wyswietl);
$plik = readfile($wyswietl, $rozmiar) or die("Nie udało się odczytać danych z pliku!");
echo "$plik";
} // tu sie konczy "if"
} // tu koniec while
closedir($pliki);
?>[/php]
Re: Co jest źle w tym kodzie?
: pt lut 18, 2005 9:09 pm
autor: Artos_paj
Słuszna uwaga, ale to chyba nie o to chodziło... Wyskakuje parse error przy funkcji if

Re: Co jest źle w tym kodzie?
: pt lut 18, 2005 9:13 pm
autor: Lukar
nie zamknąłeś nawiasu
Re: Co jest źle w tym kodzie?
: pt lut 18, 2005 9:18 pm
autor: Artos_paj
Racja! I teraz działa wypisanie nazw plików, ale niestety, nie wyświetla się ich zawartość :/
Re: Co jest źle w tym kodzie?
: pt lut 18, 2005 9:32 pm
autor: Lukar
zle uzywasz funkcji readfile():
int readfile ( string filename [, bool use_include_path [, resource context]])
sprobuj uzyc file_get_contents()
[php]<?php
if (is_file($wyswietl) ) {
echo file_get_contents($wyswietl);
}
?>[/php]
Re: Co jest źle w tym kodzie?
: pt lut 18, 2005 9:57 pm
autor: Artos_paj
Spróbuję, a czy przed tym nie trzeba użyć fopen() ?? Chyba o tym zapomniałem

Re: Co jest źle w tym kodzie?
: pt lut 18, 2005 10:01 pm
autor: Lukar
nie trzeba, na przyszłość zerkaj częściej do manuala
http://pl.php.net
Re: Co jest źle w tym kodzie?
: pt lut 18, 2005 10:08 pm
autor: Artos_paj
Użyłem, teraz kod wygląda tak:[php]<?php
$dir = "/usr/krasnal/www/artos/news/";
$pliki = opendir($dir);
while (false !== ($wyswietl = readdir($pliki))) {
$echo = "<ul>";
$echo .= "<li>$wyswietl";
$echo .= "</ul>";
echo "$echo";
if ($wyswietl !== "." && $wyswietl !== "..") {
echo file_get_contents($wyswietl);
} // tu sie konczy "if"
else {echo "Nie udało się odczytać zawartości pliku!";}
} // tu koniec while
closedir($pliki);
?>[/php]
I wyskakuje błąd:
Warning: file_get_contents(17.02.05.21.26.14.txt): failed to open stream: No such file or directory in c:\usr\krasnal\www\artos\news2.php on line 20
Manuala używam, mam go w wersji offline na kompie

Ale jak ktoś jest początkujący, ciężko tam znaleźć co trzeba i zrozumieć co tam napisano

Duża większość manuala nadaj jest po angielsku...
Linia 20 to u mnie ten fragmenr... echo get_file_contents()
Re: Co jest źle w tym kodzie?
: pt lut 18, 2005 10:32 pm
autor: mdx
dopisz [php]<?php
$wyswietl=''.$dir.'\\'.$wyswietl.'';
?>[/php]
przed
[php]<?php
echo file_get_contents($wyswietl);
?>[/php]
Re: Co jest źle w tym kodzie?
: sob lut 19, 2005 10:28 am
autor: Lukar
[php]<?php
echo file_get_contents( "'$wyswietl'" );
?>[/php]
Duża większość manuala nadaj jest po angielsku...
No niestety bez znajomosci angielskiego programowanie to chyba koszmar, w sieci jest mnostwo informacji, chociazby na swiatowych grupach dyskusyjnych ale bez języka trudno bedzie Ci z tego skorzystac...
Re: Co jest źle w tym kodzie?
: sob lut 19, 2005 11:07 am
autor: Artos_paj
Znalazłem odpowiedź! Zmienna $wyswietl to tylko nazwa pliku. Aby ścieżka była pełna, nalezy połączyć zmienną $dir i zmienną $wyswietl

Nie ma to jak przespać się z problemem!

Re: Co jest źle w tym kodzie?
: pn lut 21, 2005 9:52 am
autor: mdx
Artos_paj pisze:Znalazłem odpowiedź! Zmienna $wyswietl to tylko nazwa pliku. Aby ścieżka była pełna, nalezy połączyć zmienną $dir i zmienną $wyswietl

Nie ma to jak przespać się z problemem!

przeciez ci to napisałem dwa posty wyzej

Re: Co jest źle w tym kodzie?
: wt lut 22, 2005 4:26 pm
autor: Artos_paj
No rzeczywiście

troche mnie te ukośniki zmyliły...

Ale mam jeszcze jeden problem... Jak to zrobić, żeby pliki były wyświetlane w odwrotnej kolejności? Bo teraz jest standardowe sortowanie wg nazwy, a nazwą jest data dodania newsa. Jak zrobić, żeby wyświetlał kolejne posty od góry?