" Pragnienie życia przejawia się pełną mocą gdy ktoś przystawi Ci lufę pistoletu do głowy "

               Wyswietla...


Tablice w php są troszkę inne niż w innych językach programowania. Dlaczego? Ponieważ mogą w jednej tablicy występować różnego rodzaju dane. Nie ma tu potrzeby dla danych , powiedzmy , tekstowych używać osobnej tablicy a dla danych liczbowych innej. Wszystko możemy wrzucić do jednej tablicy i wymieszać, sortować i przetwarzać. Ale nie to jest celem tego artykułu. W artykule tym pokaże pewien prosty skrypt mojego autorstwa który wyświetla pliki z danego katalogu , sortuje ,jak również wyświetla tylko te pliki które mają takie rozszerzenie jakie chcemy i podaje je w formie linków. Jest to prosty skrypt nadający się do nauki tablic i podstawowych operacji na plikach. Uczy także jak wykorzystać pętle "foreach" do sortowania i usuwania pewnych danych z naszej tablicy. Oczywiście każdy kto chce choć troszkę zrozumieć to co się tu dzieje powinien posiadać podstawową wiedzę o tablicach , operacjach na plikach oraz podstawowych funkcjach w PHP .

Zaczynamy.

 $dir = "./";
$arr = array();
if(!($fd = opendir($dir))){
  exit("Nie mogę otworzyć katalogu $dir!");
}
else {
while (($file = readdir($fd)) !== false ){
	if (is_file($file) ){
  $arr[] = $file;
	}
}
}
closedir($fd);
Pierwsza część skryptu powinna być w miarę zrozumiała dla każdego.

Jako zmienną "$dir" bierzemy katalog bieżący (./) , jako zmienną "$arr" bierzemy pustą tablice ("array()") . Następnie komendą "if" tworzymy pierwszy warunek w którym zmiennej "$fd" przypisujemy wartość wywołania funkcji "opendir" z parametrem "$dir" a następnie sprawdzamy czy jej wartość jest różna od "false" (!) .Jeśli jest różna to przechodzimy do dalszej części skryptu (else). Jeśli jednak jest równa "false" to zostaje wywołana funkcja "exit".

Następnie dokonujemy odczytu katalogu za pomocą pętli "while". Wynik każdego odczytu z podanego przez nas katalogu (za pomocą funkcji "readdir" - nazwa każdego kolejnego katalogu) jest przypisywany zmiennej "$file". Następnie jeśli zmienna "$file" jest plikiem ("is_file" - można pominąć ten warunek by wyświetlić również katalogi lub zastosować drugi warunek "if (is_dir($file)" by wyświetlić katalogi) następuje wpis do tablicy . Wszystko to odbywa się w pętli tak długo aż wartość zmiennej "$file" będzie równa "false".

Należy zauważyć że w tym przypadku można by praktycznie zakończyć nasz skrypt i wyświetlić nasze pliki za pomocą funkcji "echo" . Jednak my chcemy jeszcze posortować naszą tablice i dopiero wtedy wyświetlić wyniki.
 array_multisort($arr, SORT_ASC, SORT_STRING);
linijka ta dokonuje pierwszego posortowania naszej tablicy. Sortuje ona pliki według nazw. Można by również zastosować metodę "sort($arr)" . Jednak wybrałem ten typ sortowania ponieważ bardziej mi odpowiadał i ma większe możliwości.
$ext = "html";
      
foreach ($arr as $file ){
if(substr($file, -4) == $ext) {
            $arre[] = $file;
         }}
Następnie rozpoczynamy usuwanie plików z tablicy które nie mają rozszerzenia takiego jakie chcemy.

Robimy to przypisując zmiennej "$ext" wartość ciągu znaków "html" . Następnie rozpoczynamy pętle "foreach" (pętla ta nie pominie żadnego elementu z naszej tablicy) której parametrami będzie nasza tablica "$arr" której każdy element zostanie przyporządkowany do zmiennej $file. Będzie ona tak długo wykonywana ile mamy wpisów w naszej tablicy.

W pętli tej umieszczamy warunek "if" który sprawdzi czy 4 ostatnie znaki z nazwy naszego pliku to znaki umieszczone w zmiennej "$ext" a następnie doda je do tablicy $arre[] . funkcja "substr" zwraca część znaków z naszej zmiennej. Znak minus "-" w parametrach tej funkcji oznacza rozpoczęcie liczenia ilości znaków od końca nazwy . W tym wypadku potrzebujemy 4 znaków by stwierdzić jakie mamy rozszerzenie.

Tu mamy już praktycznie koniec naszego skryptu. Musimy bowiem już w tym momencie wyświetlić tylko nazwy plików z naszej tablicy oraz podać je jako linki aby każdy za pomocą kliknięcia mógł przenieść się do wybranego przez nas pliku *.html .
foreach($arre as $file) {
 
 echo "<a href=\"$file\">$file"</a>";
}
Jest to jedna z najprostszych rzeczy które musimy zrobić . Wszystko rozpoczynamy znów pętlą foreach z parametrami "$arre" oraz "$file" (czyli przypisanie każdego elementu naszej tablicy zmiennej "$file" a następnie za pomocą funkcji "echo" wypisywanie wszystkich wartości jako odnośniki. Używamy tu kodu HTML . Naszym odnośnikiem będzie znany nam kod HTML na którego końcu nazwy będzie nazwa danego pliku a jako treść odnośnika wstawiamy również nazwę naszego pliku.

Pełen skrypt dostępny jest tutaj - wyświetlanie plików lub w dziale skrypty pt. wyświetlanie plików
Dane:
  Imie: Damian;
  Nick: Damilog;
  Wiek: 26 lat;

Zainteresowania:
  Tworzenie stron www;
  Wolne oprogramowanie;
  Tworzenie pakietów TGZex;

Umiejętności:
  HTML;
  XHTML;
  CSS;
  PHP ;
  Pascal;
  Język Angielski;
  Język Niemiecki;

Copyright © 2008 by Damilog.
Creative Commons License Valid XHTML 1.1 Poprawny CSS! hacker emblem bykom stop