Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wystąpienie danego wyrazu w ciągu
Forum PHP.pl > Forum > PHP
shy
Witam serdecznie. Mam problem dotyczący skryptu zliczającego ilość danych słów.

Póki co potrafię zrobić tą operacje tylko na jednym pliku tekstowym, która wygląda tak:

  1. <?php
  2. $data = file_get_contents("plik.txt");
  3. echo substr_count($data, "DanyWyraz");
  4. ?>


Chodzi mi mianowicie o to, żeby operacja dotyczyła wszystkich plików w danym folderze i podfolderach. Przykładowo:

Folder 1->Podolder 1->wiesiek.txt / rysiek.txt / grzesiek.txt
Folder 2->Podolder 2->janina.txt / grazyna.txt / alina.txt

Myślę, że w jak najlepszy sposób naświetliłem Wam o co chodzi.

Prosiłbym o pomoc, z góry dziękuję.
ghost1511
Musisz odczytać zawartość folderu. Znaleźć interesujące Cię pliki i za pomocą pętli otworzyć każdy plik z osobna.
shy
Otwieranie każdego pliku z osoba nie jest możliwe w tym przypadku, gdyż nie znam ich nazw. Znam nazwę folderu i jego podfolderów. Proszę o pomoc.
nospor
Dlatego ghost wyraznie napisal: "Musisz odczytać zawartość folderu"
W necie masz całą mase kodow, ktore czytają zawartosc folderow.
styryl
Tak na szybko to coś w tym rodzaju:

  1. $dir = getcwd();
  2. $search = 'DanyWyraz';
  3. $count = 0;
  4. $iterator = new RecursiveDirectoryIterator( $dir, FilesystemIterator::SKIP_DOTS );
  5. foreach (new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::CHILD_FIRST) as $file)
  6. {
  7. if( $file->isFile() )
  8. {
  9. if( $file->getExtension() == 'txt' ) {
  10. $count += substr_count(file_get_contents( $file->getPathname() ), $search);
  11. }
  12. }
  13. }
  14.  
  15. echo $count;
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.