login  Naam:   Wachtwoord: 
Registreer je!
 Forum

regex parantheses studie (Opgelost)

Offline marten - 10/08/2007 12:03 (laatste wijziging 10/08/2007 12:11)
Avatar van martenBeheerder Ben geen kei in regexes maar zit het me eigen te maken.
Ik heb nu de volgende string:

  1. <?php $value = '<h1 style="color: #000;">Dit is de titel</h1>Dit is de bodytekst';


Met de volgende code wil ik nu de titel eruit halen:

  1. $value = '<h1 style="color: #000;">Dit is de titel</h1>Dit is de bodytekst';
  2. echo preg_replace('/<h1(.*?)>(.*?)<\/h1>(.*?)/i', '$2', $value);


Het resultaat is echter Dit is de titel Dit is de bodytekst. Hij pakt dus ook alle navolgende parantheses. Ik wil alleen de parantheses die ik aangeef terug hebben.

Wie weet hoe ik deze code kan verbeteren zodat ik dit wel goed krijg?

2 antwoorden

Gesponsorde links
Offline b4nkr0bz0r - 10/08/2007 12:09
Avatar van b4nkr0bz0r PHP gevorderde $2 moet dat geen \\2 zijn ?

En \\/h1 is volgens mij gewoon \/h1
Offline marten - 10/08/2007 12:10 (laatste wijziging 10/08/2007 13:06)
Avatar van marten Beheerder Je kan vanaf php5 ook $n gebruiken naast \\n

Andere ga ik even testen. Bedankt alvast.

Dat lost het probleem ook niet op. helaas.

Edit
Sinds php4 

Oplossing:

  1. <?php
  2. $value = '<h1 style="background-color: #000; color: #FFF;">Dit is de titel</h1>Dit is de bodytekst';
  3.  
  4. preg_match_all('/<h1(.*?)>(.*?)<\/h1>/i', $value, $matches, PREG_SET_ORDER);
  5.  
  6. echo $matches[0][1] . '<br />'; //Stijl
  7. echo $matches[0][2]; //Titel
  8. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.208s