Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Szukanie plików w tablicy.
Forum PHP.pl > Forum > Przedszkole
xxdrago
Witam, mam taki skrypt jak poniżej on zwraca mi listę plików w katalogu potrzebowałbym znaleźć pliki z przedrostkiem nazwa_dema, jak takie coś zrobić? Próbowałem jakoś z array_search ale nie ogarniam. Prosze o pomoc.
  1. <?php
  2.  
  3. $ftp_serwer = "xxx";
  4. $ftp_nazwa_uzytkownika = "sxx";
  5. $ftp_haslo = "xas";
  6.  
  7. // nawiązanie połączenia lub zakończenie działania skryptu
  8. $conn_id = ftp_connect($ftp_serwer) or die("Nie można połączyć się z $ftp_serwer");
  9.  
  10. // próba logowania
  11. if (@ftp_login($conn_id, $ftp_nazwa_uzytkownika, $ftp_haslo)) {
  12. echo "Połączony jako $ftp_nazwa_uzytkownika@$ftp_serwer\n";
  13. } else {
  14. echo "Nie można zalogować się jako $ftp_nazwa_uzytkownika\n";
  15. }
  16.  
  17. // pobranie zawartości bieżącego katalogu
  18. $zawartosc = ftp_nlist($conn_id, "/cstrike");
  19.  
  20. // wyświetlenie zawartości
  21. var_dump($zawartosc);
  22.  
  23. // zamknięcie połączenia
  24. ftp_close($conn_id);
  25. ?>


Pozdrawiam
zielu001
  1. preg_grep('!^csdemo1_!', $array);


Może być?
xxdrago
Nie smiga coś, chyba przez to wyrażenie regularne których nie ogarniam. Zwraca array(0) { }.

  1. $dane = preg_grep('!^nazwa_dema-!', $zawartosc);


Lista plików:
Kod
nazwa_dema-1208151518-cs_militia.dem
nazwa_dema-1208151528-de_train.dem
nazwa_dema-1208151548-de_airstrip.dem
nazwa_dema-1208151608-cs_havana.dem
nazwa_dema-1208151628-de_chateau.dem
pitu
Powinno pomóc:
http://php.net/manual/en/function.in-array.php#88376
fate
Korzystajac z tego co podrzucil kolega przygotowałem dla Ciebie odpowiednie wyrazenie:
działa tak musi napotkać nazwa_dema raz i akceptuje cokolwiek aż do napotkania znaku bialego (spacji, koniec linii itd)
  1. $dane = preg_grep('/(nazwa_dema){1}([\S]){1,}/', $zawartosc);

http://regexp.pl/main/show/156241
http://regexp.pl/main/show/156239
Powinno spełnić Twoje wymagania na pewno zadziałą jeżeli cały plik wyglada jak to co przedstawiłeś.
wNogachSpisz
Stwórz transakcyjną baze danych sqlite MEMORY sqlite_open('memory:') i wrzuć to do niej.
Następnie wykonaj zapytanie LIKE i już, całość zrobiona w kilku linijkach.
Gdy wrócisz na kilka tygodni, to wystarczy że rzucisz okiem i od razu bedziesz wiedział co robi kod.
Szybkośc jest całkiem przyzwoita, zaręczam.
Ja dodatkowo używam active record i cachuje całe zapytanie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.