Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]preg_replace
Forum PHP.pl > Forum > Przedszkole
pojas
Ten kod właściwie wszytko wyjaśnia :)
  1. <?php
  2. $tekst = 'zwierze = pies;kolor = czerowny;rozmiar = mały';
  3. $co = 'kolor';
  4. $na_co = 'fioletowy';
  5.  
  6. $pattern = '';
  7. $replacement = '';
  8.  
  9. echo preg_replace($pattern, $replacement, $tekst);
  10.  
  11. // a ma zwrócić:
  12. // zwierze = pies;kolor = fioletowy;rozmiar = mały;
  13. ?>
Może mi ktoś podać jakie wartości musi mieć $pattern i $replacement żeby poprawnie działało?
Nie mogę załapać tych wyrażeń reg. Znacie jakieś dobre proste polskie opisy?
WiTO
  1. <?php
  2.  
  3.  
  4. $tekst = 'zwierze = pies;kolor = czerowny;rozmiar = mały';
  5. $co = 'kolor';
  6. $na_co = 'fioletowy';
  7.  
  8.  
  9. $pattern = '/czerowny/'; // jeśli użyłbyś $pattern = $co czyli 'kolor' to otrzymasz fioletowy=czerowny
  10. $replacement = $na_co;
  11.  
  12. echo preg_replace($pattern, $replacement, $tekst);
  13.  
  14. ?>



Jeśli chciałeś, żeby to zmieniało czerowny na fioletowy używając słowa 'kolor' jako $paterrn to używając preg_replace daleko nie ujedziesz...
dr_bonzo
WiTO patrz smile.gif

  1. <?php
  2. $tekst = 'zwierze = pies;kolor = czerowny;rozmiar = mały';
  3. $co = 'kolor';
  4. $na_co = 'fioletowy';
  5.  
  6. $pattern = "#($co = )([^;]+);#";
  7. $replacement = "1 $na_co;";
  8.  
  9. echo preg_replace($pattern, $replacement, $tekst);
  10.  
  11. // a ma zwrócić:
  12. // zwierze = pies;kolor = fioletowy;rozmiar = mały;
  13. ?>


hmm, tylko trzeba dopracowac obsluge ostatniego parametru po ktorym nie ma srednika
Max Damage
Ja może trochę z innej beczki. Ciekawi mnie bardzo skąd biorą co niektórzy takie wzory jak np. teraz dr_bonzo. Chodzi konkretnie o to:

  1. <?php
  2. $pattern ="#($co = )([^;]+);#";
  3. ?>


To są jakieś stałe wzory czy samemu da się to pisać? I co w ogóle znaczą te wszystkie znaki? Spotkałem się z czymś takim klika razy i chętnie bym się dowiedział jak to działa, itd.
WiTO
Nie mam pojęcia!! Ale od października jestem na Polibudzie Gdańskiej na kierunku infa biggrin.gif to może i ja coś się nauczę. ^^

A żeby było do końca ładnie to powinno być tak:

  1. <?php
  2. $tekst = 'zwierze = pies;kolor = czerowny;rozmiar = mały';
  3. $co = 'kolor';
  4. $na_co = 'fioletowy';
  5.  
  6. $pattern = "#($co = )([^;]+);#";
  7. $replacement = "1 $na_co;";
  8.  
  9. echo preg_replace($pattern, $co.' = '.$replacement, $tekst);
  10.  
  11.  
  12. ?>
pojas
  1. <?php
  2.  
  3. // Chciałem to zrozumieć żeby napisać taką funkcję
  4. // jest sensowna i prawidłowa?
  5.  
  6. function replace_var($var_name, $var_value, $php_code)
  7. {
  8. return preg_replace("#([$]$data *= *)[^;]+#", "$1'$value'", $code);
  9. }
  10.  
  11. $code = "<[?phpn";
  12. $code .= "$kolor = 'zielony';n";
  13. $code .= "// komentarzn";
  14. $code .= "$smak = 'pikantny';n";
  15. $code .= "$rozmiar = 'maly';n";
  16. $code .= "?]>";
  17.  
  18.  
  19. echo '<pre>'.$code.'</pre><br />';
  20.  
  21. echo '<pre>'.replace_var('rozmiar', 'ogromniasty', $code).'</pre>';
  22.  
  23. ?>
pakalk
Polski opis wyrażeń regularnych

http://www.grabun.com/wyrazenia-regularne/
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.