login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Reguliere expressie/vervanging (Opgelost)

Offline Button - 29/03/2010 22:44 (laatste wijziging 29/03/2010 22:46)
Avatar van ButtonPHP ver gevorderde Hallo,

ik ben niet thuis op de markt van reguliere expressies. Kan iemand met helpen met het volgende uit te werken?

Ik moet in de onderstaande string [%page%], [%sub%] en [%friendId$] er uit filteren en deze vervangen door respectievelijk $row['page'], $row['sub'] & $row['friendId']. Dit zijn uiteraard php variablen die dan vervangen worden. Dus ik moet dus altijd het middendeel uit [%tekst%] filteren en het geheel vervangen door $row['tekst'].

  1. "<a href=\"index.php?p=[%page%]&sub=[%sub%]&id=[%friendId%]\">Edit</a>"


Ik veronderstel dat dit met preg_replace zal gebeuren?

Iemand ideeën?

Alvast bedankt,

Glenn

6 antwoorden

Gesponsorde links
Offline vinTage - 29/03/2010 22:50 (laatste wijziging 29/03/2010 22:52)
Avatar van vinTage Nieuw lid PHP.net: str_replace zal handiger zijn aangezien je je string gewoon weet..

Maar waarom "echo" je die lijn niet gwoon in de while loop van je queery ($row['...] doet me iig aan een database resultaat denken)


edit: typo in de php.net link
Offline Button - 29/03/2010 23:02
Avatar van Button PHP ver gevorderde Nee dat is het hem juist waarom het met reguliere expressies moet gebeuren, ik weet de string niet. Dat is gewoon een voorbeeld. Het kan eender wat zijn, behalve die [%%] staan er zeker in, maar de tekst die er tussen staat kan variëren.
Offline vinTage - 29/03/2010 23:13 (laatste wijziging 29/03/2010 23:14)
Avatar van vinTage Nieuw lid ah, verkeerd begrepen dan, ik ben der ook geen held in, maar dit lijkt te werken hiero:

  1. <?
  2. $str = '<a href="index.php?p=[%page%]&sub=[%sub%]&id=[%friendId%]">Edit</a>';
  3.  
  4. echo preg_replace("~p=\[%(.*?)%\]&sub=\[%(.*?)%\]&id=\[%(.*?)%\]~" , "p=\\1&sub=\\2&id=\\3", $str);
Offline Button - 30/03/2010 07:33 (laatste wijziging 30/03/2010 07:34)
Avatar van Button PHP ver gevorderde Ok, daar ben ik al meer mee!

Maar hoe zorg ik er nu voor dat elke mogelijke [%tekst%] vervangen wordt?
Dus bv. in dit
  1. "<a href=\"index.php?p=[%page%]&sub=[%sub%]&id=[%friendId%]&home=[%homeID%]\">Edit</a>"


of in dit
  1. "Dit is jouw naam: [%firstname%][%lastname%]"

of
  1. "<img src="[%imgName%].jpg">"


enzovoort. Dus zoals je ziet, moet elke [%tekst%] vervangen worden door "tekst" in eender welke string.

Hoe speel ik dat klaar?

Glenn
Offline vinTage - 30/03/2010 11:27
Avatar van vinTage Nieuw lid
  1. str_replace('[%' , '', $txt); //en een voor af te sluiten


 
Offline Button - 30/03/2010 12:37 (laatste wijziging 30/03/2010 12:37)
Avatar van Button PHP ver gevorderde Nee dat lukt ook niet en wel om de volgende reden:
  1. "Dit is jouw naam: [%firstname%] ", " [%lastname%]"


Dit moet vervangen worden door:
  1. "Dit is jouw naam: " . $row['firstname'] . ", " . $row['lastname'] . ".";


M.a.w. het moet vervangen worden door een php variabele en dat kan je niet zo doen met str_replace().  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.206s