Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Jak odczytać z pliku .txt teksty zawarte tylko pomiędzy nawiasami (text)?
Forum PHP.pl > Forum > Przedszkole
AmyLokmart
Mam kolejny problem. Dokładnie chodzi, o odczyt z pliku tekstowego tylko tych fragmentów tekstu, które są zawarte pomiędzy nawiasami sześciennymi, czyli między znakiem "(", a znakiem ")". Reszta tekstu, która nie jest zawarta w nawiasach chciałabym pominąć. Jest to dla mnie ważne ponieważ teksty w nawiasach wymagają specjalnego formatowania, ale, żeby to zrobić to najpierw muszę wyciągnąć te teksty z plików i sporządzić listę.

Czy ktoś wie jak to zrobić?

Na razie mam tak:

  1. $lines = file('base.txt');
  2. // Pętla: tworzy listę wszystkich znalezionych pozycji
  3. foreach ($lines as $line_num => $line) {
  4. echo $line . "<br />";
  5. }

AmyLokmart
Dziękuję "Aras785" za podpowiedzi smile.gif Przeszukałam dokumentację, ale próbując utworzyć wzorzec na podstawie wyjaśnionych szczegółów nie działał mi ten mechanizm za dobrze, ponieważ w wielu przypadkach dublował string lub dodawał niezliczone ilości pustych wierszy. Co do podanej strony przez Ciebie: https://www.phpliveregex.com/p/D63, muszę napisać, że jeśli wykonywałabym swoje działania na zmiennej to wzorzec:

  1. preg_match('/\((.*?)\)/i', $input_line, $output_array);


Podany na stronie: https://www.phpliveregex.com/p/D63, ma sens i oczywiście działa smile.gif W moim przykładzie dodatkowo działania przebiegają w pętli, która wymaga dodatkowego warunku i ten wzorzec: "/\((.*?)\)/i" się nie sprawdzi (sprawdziłam to i nie działa).

Użyłam funkcji preg_match zmieniając wzorzec po swojemu, metodą prób i błędów oraz informacji wyjaśniających każdy element i utworzyłam własny wzorzec

  1. preg_match('!\(([^\)]+)\)!', $input_line, $output_array);


Do funkcji oczywiście dodałam warunek i działa ślicznie smile.gif

PS: Dla tych, którzy chcą zrozumieć jak działa PREG osobiście polecam zapoznać się i nauczyć cech "Regex" - naprawdę pomaga, wiem z doświadczenia smile.gif

Pozdrawiam PHPowców smile.gif
aras785
Widzisz, nie podałaś kontekstu i nikt poza Tobą dalej nie wie co niby nie działało - mój przykład był odpowiedzią na Twoje pytanie. Swoją drogą podany przez Ciebie wzorzec wyszukuje te same fragmenty co ten z przykładu. A co do tych Twoich podsumowań to nie mam pytań.. pytasz, a później uczysz innych korzystać z dokumentacji biggrin.gif
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.