login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Filter text uit tags (Opgelost)

Offline dimb - 23/03/2010 20:34 (laatste wijziging 23/03/2010 20:37)
Avatar van dimbNieuw lid Hallo allemaal,

Ik ben bezig om zelf een CMS te maken. De HTML van een pagina haal ik door een filter heen om vervolgens verschillende tags te vervangen.
Een vereenvoudigd voorbeeld:

<div>{MENU_1}</div>
<p>{TEXT_1}</p>

De bedoeling is dat ik deze string (html) door een functie/foreach loop haal en zo iedere tag apart kan behandelen.
MENU_1 wordt dan vervangen door het menu en TEXT_1 door textblok 1.

Nu ben ik al een tijdje aan het kloten met preg_match e.d. maar er komt weinig tot niks nuttigs uit. De verwerking van de tags is geen probleem maar het selecteren en het filteren van de text tussen de tags lukt niet. Hoe kan ik dit probleem het beste aanpakken?

Groet,
Dimby

4 antwoorden

Gesponsorde links
Offline TotempaaltJ - 23/03/2010 20:42
Avatar van TotempaaltJ PHP interesse Kan je niet gewoon een regex doen op {(.*)}?
Offline dimb - 23/03/2010 20:47 (laatste wijziging 23/03/2010 20:49)
Avatar van dimb Nieuw lid Geeft met de onderstaande code niet het gewenste resultaat:
  1. <?php
  2. preg_match('{(.*)}', 'testtest {MENU_1} lorum ipsum', $matches);
  3. print_r($matches);
  4.  
  5. //Output: Array ( [0] => testtest {MENU_1} lorum ipsum [1] => testtest {MENU_1} lorum ipsum )
  6.  
  7. ?>
Offline TotempaaltJ - 23/03/2010 20:56
Avatar van TotempaaltJ PHP interesse Nee niet letterlijk overnemen! Nadenken!! DEEEENK!!! 
Offline dimb - 23/03/2010 20:59 (laatste wijziging 23/03/2010 22:58)
Avatar van dimb Nieuw lid Uhm? Regular Expression is niet echt mijn beste kant (lees: ik begrijp ze niet ).

  1. <?
  2. preg_match('/{(.*)}/', 'testtest {MENU_1} lorum ipsum {MENU_2}', $matches);
  3. print_r($matches);
  4.  
  5. Output: Array ( [0] => {MENU_1} lorum ipsum {MENU_2} [1] => MENU_1} lorum ipsum {MENU_2 )
  6. ?>


EDIT:
Opgelost:
  1. <?php
  2.  
  3. $var = 'Lorum ipsum {MENU_1} Lorum ipsum {TEXT_1} Lorum ipsum {MENU_2} Lorum ipsum ';
  4. preg_match_all ("/{(.*?)}/",$var, $matches);
  5. $matches = $matches[1];
  6.  
  7. echo '<pre>';
  8. print_r($matches);
  9. echo '</pre>';
  10.  
  11. //Output
  12. //Array
  13. //(
  14. // [0] => MENU_1
  15. // [1] => TEXT_1
  16. // [2] => MENU_2
  17. //)
  18.  
  19. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.198s