Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Proszę o wytłumaczenie kodu
Randallmaster
post
Post #1





Grupa: Zarejestrowani
Postów: 677
Pomógł: 11
Dołączył: 18.11.2009

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


  1. $obecny_kat = './';
  2. $kat = opendir($obecny_kat);
  3. while ($plik = readdir($kat))
  4. {
  5. if ($plik != '.' && $plik != '..' && is_dir($obecny_kat.$plik))


wiem że open dir otwiera katalog, readdir czyta wszystkie katalogi natomiast mam problem z kodem po if.

Chce sam dodać sortowanie alfabetyczne ale najpierw musze zrozumieć kod
Go to the top of the page
+Quote Post
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


  1. if ($plik != '.' // Jeśli element nie jest "głównym folderem" - pojedyncza kropka
  2. && $plik != '..' // jeżeli element nie jest folderem nadrzędnym
  3. && is_dir($obecny_kat.$plik)) // jeśli jest folderem



W systemach lista plików może wyglądać tak:

.
..
folder1
folder2
plik1.txt
plik2.txt
(...)

Z takiego ten IF przepuści:

folder1
folder2

(IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Prym
post
Post #3





Grupa: Zarejestrowani
Postów: 100
Pomógł: 11
Dołączył: 20.05.2007
Skąd: z fotela :)

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


Kod
    $obecny_kat = './';   // katalog do listowania (./ - oznacza katalog w którym znajduje sie plik z aktualnym kodem - osobiście wolę używać odnośników od samego poczatku drzewa katalogów na serwerze czyli : $_SERVER['DOCUMENT_ROOT'] - wskazuje na katalog główny serwisu)
    $kat = opendir($obecny_kat); // pobiera liste plików z katalogu
    while ($plik = readdir($kat)) // pętla: za każdym razem do $plik przyporządkowuje jednego pliku/katalogu
    {
    if ($plik != '.' && $plik != '..' && is_dir($obecny_kat.$plik))  // tu masz sprawdzenie czy dana pozycja jest : . katalogiem bieżącym, .. przejściem do katalogu powyżej, is_dir jest katalogiem.
Go to the top of the page
+Quote Post
Randallmaster
post
Post #4





Grupa: Zarejestrowani
Postów: 677
Pomógł: 11
Dołączył: 18.11.2009

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


No to wiem co mi napisaliście, ale możecie mi napisać dokładnie co oznaczają te kropki:

  1. $plik != '.' && $plik != '..'
<- co to ma za zadanie co daje wykrzyknik??



tu staram się zrobić alfabetycznie ale wychodzi mi ciągle

plik[0] = plik1

plik[0] = plik2



  1. $obecny_kat = './';
  2. $kat = opendir($obecny_kat);
  3. while ($plik = readdir($kat))
  4. {
  5. if ($plik != '.' && $plik != '..' && is_dir($obecny_kat.$plik))
  6. {
  7. $sort = array($plik);
  8. sort($sort);
  9. foreach ($sort as $key => $val) {
  10. echo "plik[" . $key . "] = " . $val . "\n";
  11. }
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




kropki to nazwy wirtualnych katalogów w systemie plików
! - to operator negacji - podstawy php, które wypadaloby znać.
== - operator porównania
!= - operator różności
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
Randallmaster
post
Post #6





Grupa: Zarejestrowani
Postów: 677
Pomógł: 11
Dołączył: 18.11.2009

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


dlaczego mi wychodzi ciągle

array[0](IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




$sort = array($plik);
Bo zawsze tworzysz tablicę jedno elementową
Go to the top of the page
+Quote Post
Randallmaster
post
Post #8





Grupa: Zarejestrowani
Postów: 677
Pomógł: 11
Dołączył: 18.11.2009

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


Cytat(nospor @ 30.11.2011, 10:14:23 ) *
$sort = array($plik);
Bo zawsze tworzysz tablicę jedno elementową


no ale jak próbowałem zrobić

$plik = array(); to wszędzie pisze mi array (IMG:style_emoticons/default/sad.gif) nie mogę znaleźć funkcji dorozdzielenia tego
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Masz dodawać do tablicy a nie ciągle tworzyć ją na nowo.
  1. $obecny_kat = './';
  2. $kat = opendir($obecny_kat);
  3. $tab = array();
  4. while ($plik = readdir($kat))
  5. {
  6. $tab[]= $plik; //tak sie dodaje
  7. }
  8. print_r($tab);
Go to the top of the page
+Quote Post
Randallmaster
post
Post #10





Grupa: Zarejestrowani
Postów: 677
Pomógł: 11
Dołączył: 18.11.2009

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


trochę dziwnie mi się zrobiło:

Array ( [0] => BogFran )
Array ( [0] => BogFran [1] => Krysiak )
Array ( [0] => BogFran [1] => Krysiak [2] => Fadome )
Array ( [0] => BogFran [1] => Krysiak [2] => Fadome [3] => Demar )

potrzebuję uzyskać:

array[0] => Bogfran
array[1] => Krysiak
array[2] => Fadome

itd.(IMG:style_emoticons/default/questionmark.gif)

Ten post edytował Randallmaster 30.11.2011, 10:38:33
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Pokaz kod, bo znowu coś napsułes
Go to the top of the page
+Quote Post
Randallmaster
post
Post #12





Grupa: Zarejestrowani
Postów: 677
Pomógł: 11
Dołączył: 18.11.2009

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


  1. <?php
  2. $obecny_kat = './';
  3. $kat = opendir($obecny_kat);
  4. $tab = array();
  5. while ($plik = readdir($kat))
  6. {
  7. if ($plik != '.' && $plik != '..' && is_dir($obecny_kat.$plik))
  8. {
  9. $tab[] = $plik;
  10. print_r ($tab);
  11.  
  12. }
  13. }
  14. ?>


muszę tylko wyegzekwować same foldery bez innych katalogów

Ten post edytował Randallmaster 30.11.2011, 10:44:53
Go to the top of the page
+Quote Post
nospor
post
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




U mnie print_r jest poza petlą. Ty dales to w petli i sie dziwisz ze ciagle ci printuje....
Wywal print_r poza pętlę
Go to the top of the page
+Quote Post
Randallmaster
post
Post #14





Grupa: Zarejestrowani
Postów: 677
Pomógł: 11
Dołączył: 18.11.2009

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


Super działa (IMG:style_emoticons/default/smile.gif) No i dodałem sortowanie alfabetyczne (IMG:style_emoticons/default/smile.gif)

  1. <?php
  2. $obecny_kat = './';
  3. $kat = opendir($obecny_kat);
  4. $tab = array();
  5. while ($plik = readdir($kat))
  6. {
  7. if ($plik != '.' && $plik != '..' && is_dir($obecny_kat.$plik))
  8. {
  9. $tab[] = $plik;
  10. }
  11. }
  12. sort($tab);
  13. foreach ($tab as $key => $val) {
  14. echo $val ."\n";
  15. }
  16. ?>
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 04:57