Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]podmiana linijki na inna ze zmiennymi?
Forum PHP.pl > Forum > Przedszkole
canismajoris
Witam

może ktoś pomóc.

  1. $plik=file('plik.txt');
  2. $new=("to jest przykladowy wpis");
  3.  
  4. foreach ( $plik as $line => $value )
  5. {
  6. if (preg_match('/\b'.$wyraz1.'\b/', $value) ) {
  7. if (preg_match('/\b$wyraz2\b/', $value) )
  8. {
  9. str_replace( $value, $new , $plik);
  10. }}}


nie dziala podmiana
jak biore echo to mi wybrany fragment lini wy swietli, ale go nie podmienia , coś pewnie nie tak z str/-replace i składnią, ale próbuje i nie działa.
pozdr.


nie udało mi się dojść jak pdmienić cała linię więc próbuje znaleźć pasującą lnię, usunąć linię i zapisać nową.
nie działa mi jednak część pierwsza usunięcie wybranej.
kod mam taki
błędów nie wywala a mimo to nie usuwa linii, może ktoś rzucić okiem, będę wdzięczy za sugestie

  1. $file=file("test.txt");
  2. #$fp=fopen($file, "a+");
  3. foreach ( $file as $line => $value )
  4. {
  5. if (preg_match('/karolina/' , $value ))
  6. {
  7. #echo $value;
  8. unset($file['$vlue']);
  9. }}


pozdraiwam
nospor
kasue się po indeksie a nie po wartosci

NIe; unset($file['$vlue']);
a: unset($file[$line]);
canismajoris
  1. $file=file("test.txt");
  2.  
  3. foreach ( $file as $line => $value )
  4. {
  5. if (preg_match('/karolina/' , $value ))
  6. {
  7. unset($file[$line]);
  8. }}


plik txt zawiera imona

marta
martyna
karolina
agnieszka

dalej nie kasuje mi lini karolina, najlepiej jakby zamienil np. karolina na ania....
nospor
unset operuje na tablicy a nie na pliku. Wykonanie unset w żaden sposób nie zmienia zawartosci pliku

A jak chcesz zmienic karolina na ania to uzy poprostu str_replace i po sprawie
canismajoris
a w takim razie jakas podpowiedz jak to wykonać?

  1. $plik=file("test.txt");
  2.  
  3. foreach ( $plik as $line => $value )
  4. {
  5. if (preg_match('/karolina/' , $value ))
  6. {
  7. str_replace('karolina' , 'ania' ,$plik);
  8. }}



nie działa
vonski
Zamiast

  1. str_replace('karolina' , 'ania' ,$plik);


daj:

  1. $plik = str_replace('karolina' , 'ania' ,$plik);
canismajoris
  1. $plik=file("plik.txt");
  2. $fplik=fopen("plik.txt", "r+");
  3. $dane = ("$a $b $c $d $e $f $g");
  4. foreach ( $plik as $line => $value )
  5. {
  6. if (preg_match('/\b'.$a.'\b/', $value) ) {
  7. if (preg_match('/\b'.$b.'\b/', $value) )
  8. {
  9. $output=$value;
  10. #echo $value;
  11. $rtext = fread($fplik, filesize("plik.txt"));
  12. $text = str_replace($output ,$dane ,$rtext);
  13. fwrite($fplik,$text);
  14. fclose($fplik);
  15. }}}


ok, wykonałem to w taki sposób.
działa na tyle że dopisuje mi dane, jednak nie zamenia linii-nie kasuje starej.
co tu poprawić?

z gory dzieki

anyone?
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.