login  Naam:   Wachtwoord: 
Registreer je!
 Forum

String pattern herhaal sub pattern

Offline faithmike - 28/02/2008 10:34
Avatar van faithmikeNieuw lid Ik gebruik html entities om te voorkomen dat html in mijn database en site word uitgevoerd.

Ik heb een ubb code geschreven waarin ik wel tabellen wil toestaan.

Om het volgende toe te staan.
  1. <table optie="waarde">


Gebruik ik onderstaande string pattern.
  1. '/(&lt;table)(\s)(.*?)(\=)(&quot;)(.*?)(&quot;)(.*?)(&lt;\/table&gt;)/'

Dit werkt maar...
nu zou ik eigenlijk ook meerdere opties toe willen staan.
dus ik zou willen dat mijn string pattern ook om kan gaan met onderstaand
  1. <table optie="waarde" optie="waarde"


Het volgende deel van de pattern zou dus eigenlijk zo vaak als nodig is moeten worden vervangen.
  1. (\s)(.*?)(\=)(&quot;)(.*?)(&quot;)


Hoe kan ik dit stukje subpatern meerdere malen opzoeken in de table tags?

Greetz

5 antwoorden

Gesponsorde links
Offline Grayen - 28/02/2008 10:43
Avatar van Grayen PHP ver gevorderde Met de volgende pattern misschien?

  1. '/(&lt;table)(?:(\s)(.*?)(\=)(&quot;)(.*?)(&quot;))*(.*?)(&lt;\/table&gt;)/'
Offline faithmike - 28/02/2008 10:51
Avatar van faithmike Nieuw lid Thx voor je snelle reactie,

Hij werkt deels maar dat kan aan mij liggen denk ik.
Hij vervangt nu alleen de laatste optie="waarde" de andere laat hij weg.

Mijn replace string is als volgt:
  1. '<table ${3}="${6}">${9}</table>',


Moet ik hier ook een herhaling uitvoeren ?

Greetz
Offline Grayen - 28/02/2008 13:03
Avatar van Grayen PHP ver gevorderde Dit is zeker waar je naar toe wilt?

  1. <?php
  2. $sString = htmlentities('<p>test</p><table class="test" id="haha"><tr><td>test</td></tr></table>');
  3.  
  4. echo preg_replace('/(&lt;table(?:.*?)&gt;(?:.*?)&lt;\/table&gt;)/ie', 'html_entity_decode(\'\\1\', ENT_QUOTES)', $sString);
  5. ?>
Offline faithmike - 28/02/2008 13:55 (laatste wijziging 28/02/2008 14:25)
Avatar van faithmike Nieuw lid Ik heb al een ubb class geschreven met preg_replace dus het is een van de entries in de array. Maar dat is idd waar ik naartoe wil.

Ik denk dat html_entity_decode was waar ik naar zocht ik ga het nu meteen proberen.

Thx

----

Ik heb het net geprobeerd maar als ik html_entity_decode ertussen gooi dan blijft ie html entities outputten :S
Offline Grayen - 28/02/2008 15:15
Avatar van Grayen PHP ver gevorderde mag ik je code dan eens zien, want het zou moeten werken.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.258s