[PHP] wat is er fout in deze regex

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • RicX
  • Registratie: September 2003
  • Laatst online: 04-09 13:11

RicX

Het leven is geen ponypark

Topicstarter
Ik ben bezig met een php-applicatie die onder andere de formulieren uit een andere pagina nodig heeft. Hiermee bedoel ik dat hij alles tussen de <form>-tags nodig heeft.

Ik wilde dit oplossing door een preg_match_all te doen, waarbij dus de html-code van alles tussen de form-tags in een array wordt opgeslagen.
Hier komt mijn probleempje om de hoek kijken... Ik heb de volgende regex gebruikt, na uren researchen en klooien:

PHP:
1
  preg_match_all('!<form(.*)>(.*)</form>!iU', $source, $matches);


Ik weet dat er 3 formulieren op de pagina staan, maar als ik
PHP:
1
2
3
print "<pre>";
print_r($matches);
print "</pre>";

gebruik, dan krijg ik het volgende te zien:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Array
(
    [0] => Array
        (
        )

    [1] => Array
        (
        )

    [2] => Array
        (
        )

)


met andere woorden... Hij vind de 3 formulieren, maar hij slaat niks aan gevonden values op in het array... Wat is er dan precies mis?
Researchen op php.net en GoT heeft niet echt wat opgeleverd... Hoe krijg ik het zo dat $matches alle content bevat?

Honesty is the best policy, but insanity is a better defense


Acties:
  • 0 Henk 'm!

Verwijderd

Kijk eens naar de source van die pagina.

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Je matched niet met newlines en tabs. Voeg de s-flag ook eens toe aan je parameterlist;
PHP:
1
preg_match_all('!<form(.*)>(.*)</form>!isU', $source, $matches);

Acties:
  • 0 Henk 'm!

  • RicX
  • Registratie: September 2003
  • Laatst online: 04-09 13:11

RicX

Het leven is geen ponypark

Topicstarter
worked like a charm.... heel erg bedankt... klein modifier-foutje dus...

Honesty is the best policy, but insanity is a better defense