login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Reguliere expressies (Opgelost)

Offline Ronstert - 20/05/2009 10:06 (laatste wijziging 20/05/2009 10:06)
Avatar van RonstertMySQL interesse Hoi,

Ik heb net de tutorial voor reguliere expressies gelezen maar kom er toch niet uit.

Wat ik zoek is een expressie die alles tussen mijn <a name=""> leest, bijv: <a name="dit_is_een_test"> word: dit_is_een_test.

hoe zorg ik ervoor dat ik de juiste text uit mijn content kan filteren?.
ik heb nu volgende
  1. ereg('<a.*name[[:space:]]?=[[:space:]]?["\']?(.*)["\']?',$aContent['CONTENT'],$array);

5 antwoorden

Gesponsorde links
Offline Rik - 20/05/2009 10:23
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Je kunt het zo proberen:
  1. ereg('<a[[:space:]]+name[[:space:]]*=[[:space:]]*"?([^"]*)"?',$aContent['CONTENT'],$array);


Als je het ingewikkelder wilt maken zou je het best PHP.net: preg_match kunnen gebruiken, want die kan uitgebreidere regexes aan.
Offline Ronstert - 20/05/2009 10:42 (laatste wijziging 20/05/2009 10:42)
Avatar van Ronstert MySQL interesse hoe kan ik er dan voor zorgen dat ik meerdere <a name=""> kan afvangen.

ik moet zeg maar een menu creeren op basis van de ankers, in de content kunnen er bijv 5 voorkomen.?

heb je nog een idee hier voor?.
Offline Rik - 20/05/2009 12:39
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Dit zou moeten lukken met PHP.net: preg_match_all.
Offline Richard - 20/05/2009 12:42
Avatar van Richard Crew algemeen Alles ophalen?

  1. <?php
  2. preg_match_all('{<a(?:(?!name=)[^>]|name="([^"]+)")+>}', $input, $matches);
  3.  
  4. print_r($matches[1]);
  5. ?>
Offline Ronstert - 20/05/2009 13:07
Avatar van Ronstert MySQL interesse ik heb het opgelost met volgende
preg_match_all( '<a name="(.*)">', $aContent['CONTENT'], $aResults );
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.2s