Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]edycja linii pliku txt
Forum PHP.pl > Forum > Przedszkole
trucksweb
mam takie plik txt:
  1. <?php
  2. linia 1
  3. linia 2
  4. linia 3
  5. linia 4
  6. ...
  7. ?>


i taki kod:
  1. <?php
  2. $file = file('plik.txt');
  3.  
  4.  
  5. foreach($file as $line_num=>$line) {
  6.  
  7.  if(preg_match('/^linia 1$/D', $line)) {
  8.    echo $line_num ." - ". $line;
  9.    unset($file[$line_num]);  
  10.  }
  11. }
  12. ?>


ktory powinien wyswietlic linie zgodna z linia 1- czyli ciagniem znakow ktore mnie interesuja.
Niestety cos nie dziala. stawiam na to wyrazenie regularne tongue.gif
Ktos moglby rzucic na to okiem ?
peter13135
moze zamiast $line_num=>$line daj $line
trucksweb
w zmiennej $line_num jest nr wiersza w a $line jest jego zawartosc.To sie zgadza, i plik jak wyswietle go linia po lini to sie wyswietla dobrze.
Problem jest z odszukaniem wlasnie tego ciagu znakow
Pilsener
A po co Ci wyrażenie regularne? Do wyszukania stringa w stringu używa się strstr" title="Zobacz w manualu PHP" target="_manual

Cytat
Niestety cos nie dziala
- a co konkretnie? Jaki efekt chcesz uzyskać? Wyzerować indeks tablicy, usunąć go, edytować?
trucksweb
tak, chce znalezc linie w ktorej jest poszukiwany ciag znakow a nastepnie cala ja nadpisac

-nie dziala tzn. wogole nie wchodzi to tego ifa w ktorym jest wyrazenie regularne
Pilsener
No to spróbuj tak:

  1. <?php
  2. if(strstr($line,'linia 1')) {
  3.   echo 'test';
  4.  }
  5. ?>
webdice
Jak się już upierasz przy preg_match" title="Zobacz w manualu PHP" target="_manual to:

  1. <?php
  2. if(preg_match('/^linia 1r\n$/D', $line)) {
  3. ?>


albo

  1. <?php
  2. if(preg_match('/^linia 1/D', $line)) {
  3. ?>
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.