Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Szukanie plików w tablicy.
xxdrago
post
Post #1





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


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

Ten post edytował xxdrago 9.12.2012, 18:52:22


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
zielu001
post
Post #2





Grupa: Zarejestrowani
Postów: 87
Pomógł: 3
Dołączył: 15.08.2009

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


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


Może być?


--------------------
"Zło do triumfu potrzebuje tylko tego, aby dobrzy ludzie nic nie robili"
Go to the top of the page
+Quote Post
xxdrago
post
Post #3





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


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


Ten post edytował xxdrago 9.12.2012, 19:27:20


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
pitu
post
Post #4





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

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


Powinno pomóc:
http://php.net/manual/en/function.in-array.php#88376


--------------------
HTML/CSS/JS: jsfiddle
SQL: sqlfiddle
Go to the top of the page
+Quote Post
fate
post
Post #5





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

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


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ś.

Ten post edytował fate 9.12.2012, 21:21:10


--------------------
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #6





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


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.

Ten post edytował wNogachSpisz 9.12.2012, 21:40:58
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 13:14