Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Odczytywanie pliku *.txt
Forum PHP.pl > Forum > Przedszkole
patryk20120
Witam winksmiley.jpg
Mam pytanie, czy jest taka opcja w php, która pozwala odczytać tekst w pliku *.txt pomiędzy jakimiś wyrazami/tagami questionmark.gif

np. mam plik (txt) o treści:
Kod
abc to jest tekst abc

i chodzi mi o to, aby funkcja wyciągnęła tylko ten tekst, który jest pomiędzy "abc"
marcok
  1. <?php
  2. $source = 'abc to jest tekst abc';
  3. $part = explode("abc", $source);
  4. echo $part[1];
  5. ?>


Podstawy!!! Pozatym radze częściej zaglądać do manuala : http://pl2.php.net/manual/pl/function.explode.php" title="Zobacz w manualu PHP" target="_manual
patryk20120
marcok, dzięki wielkie, ale wyeliminuje to "abc" z dwóch stron questionmark.gif
marcok
tak wyświetli się :

  1. to jest tekst
patryk20120
A wiesz może jak zrobić takie coś:
jest plik(txt) o treści:
Kod
abc tekst1 abcd
qwe tekst2 qwer

i żeby wyświetliło mi to tak:
Kod
tekst z tagów abc/abcd: "tekst1"
tekst z tagów qwe/qwer: "tekst2"

czyli żeby pominęło 2 różne tagi questionmark.gif
raptorx
  1. <?php
  2. $source = 'balcer to jest pomiedzy auto abc To jest nmiedzy pierwszymi literami abcd
  3.  
  4. abc';
  5. $parta = explode("balcer" & "auto", $source);
  6. echo $parta[1];
  7. $partb = explode("abc" & "abcd", $source);
  8. echo $partb[1];
  9. ?>


To jest taki przykład. Pozdrawiam

//edit Zmienione bo nie zauważyłem, że dwóch różnych. Pozdrawiam. raptorx
zegarek84
rozwiązania okreżną drogą... - prościej skożystać z wyrażeń regularnych i po więcej odsyłam do google pod haslem php wyrażenia regularne...

Kod
$subject = "abc tekst1 abcd
qwe tekst2 qwer";
$pattern = "/^abc(.*)abcd/";
preg_match_all($pattern, $subject, $matches);
print_r($matches);


lub wszystko ale lepiej 2 zrobić osobno tablice

Kod
$subject = "abc tekst1 abcd
qwe tekst2 qwer";
$pattern = "/^abc(.*)abcd|qwe(.*)qwer/";
preg_match_all($pattern, $subject, $matches);
print_r($matches);
patryk20120
Mam taki kod:
  1. <?php
  2. $source = 'abc to jest tekst w  bob a to poza';
  3. $part = explode("abc" & "bob", $source);
  4. echo $part[1];
  5. ?>

i chcę, aby wyświetliło mi tekst pomiędzy "abc" i "bob" a poza nim nie, lecz skrypt nie wyświetla mi żadnego z tekstów...
erix
Cytat
i chcę, aby wyświetliło mi tekst pomiędzy "abc" i "bob" a poza nim nie, lecz skrypt

Od tego są wyrażenia regularne. Tu explode" title="Zobacz w manualu PHP" target="_manual nie przyda Ci się.

PS. Sprawdź sobie, do czego służy operator "&".
patryk20120
A mógłbyś naprowadzić mnie na jakiś "trop" nie wiem od czego zacząć :/
erix
Proponuję zacząć od lektury manuala i przeszukania Google. To jest trop. Temat rzeka: "WYRAŻENIA REGULARNE".
patryk20120
A do wyszukania w tekście np. "abc" jaka funkcja służy questionmark.gif
znalazłem tylko "ereg"
  1. <?php
  2. if (ereg('abc', $sStr))
  3. ?>

ale wyszukuje ona tylko na początku zmiennej, a ja chcę, aby ona po całej zmiennej szukała np. jak znajdzie w środku to żeby też zwrócił true
bliitz
poczytaj manuala na temat preg_match oraz preg_match_all na stronie php.net
patryk20120
No dobrze, mam funkcje zastępowania danego wyrazu, ale jak zrobić to, że pokazuje mi tekst z pliku tylko wpisany pod danymi tagami np.
Zawartość pliku *.txt:
Kod
<1> test1 </1>
<2> test2 </2>

a na stronie wyświetli mi tak:
Kod
Z tagów <1> i </1>: test1
Z tagów <2> i </2>: test2

Po prostu chodzi mi o to, żeby wyszukać dany tag i wyświetlić jedynie to co jest pomiędzy nim smile.gif
Bardzo proszę nie o gotowy skrypt, ale więcej szczegółów.
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.