Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]preg_replace, Nic z tego nie kapuje :(
pojas
post
Post #1





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 31.03.2006

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
WiTO
post
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 6.04.2007

Ostrzeżenie: (0%)
-----


  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...
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


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


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Max Damage
post
Post #4





Grupa: Zarejestrowani
Postów: 246
Pomógł: 19
Dołączył: 14.06.2007

Ostrzeżenie: (0%)
-----


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.


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on właśnie to robi." - Albert Einstein
Go to the top of the page
+Quote Post
WiTO
post
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 6.04.2007

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
pojas
post
Post #6





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 31.03.2006

Ostrzeżenie: (0%)
-----


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


Ten post edytował pojas 23.07.2007, 10:46:45
Go to the top of the page
+Quote Post
pakalk
post
Post #7





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 22.07.2007

Ostrzeżenie: (0%)
-----


Polski opis wyrażeń regularnych

http://www.grabun.com/wyrazenia-regularne/
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 03:42