Avatar billede doomstone-dk- Nybegynder
06. november 2008 - 00:51 Der er 1 kommentar og
1 løsning

Regular Expression, Expresso til php

Jeg er rimelig ny til Regular Expression, efter et par timers arbejde er det endelig lykkedes mig at lave en som virker

"(?i)<php:(.*[^ ])\s*name\s*=\s*[\"'](.+?)[\"'](.[^>]*)>(.*)</php:\1\s*name\s*=\s*[\"']\2[\"']\s*>"

Den er lavet med Expresso, dog vil den bare ikke virke i php

$pattern = "|<php:(.*[^ ])\s*name\s*=\s*[\"'](.+?)[\"'](.[^>]*)>(.*)</php:\1\s*name\s*=\s*[\"']\2[\"']\s*>|U";

preg_match($pattern, $html, $matches);
print_r($matches);

Får bare 0 resultater, på samme tekst som Expresso vil på flere på

<php:if name="iftest" haxor="lol">Some stuff</php:if name="iftest">

<php:if name="somename">Some stuff</php:if name="somename">

Jeg ved desvære ikke hvorfor den bare ikke vil virke i php, nogen som kan hjælpe?
Avatar billede doomstone-dk- Nybegynder
06. november 2008 - 03:08 #1
Fik den lavet :D
preg_match_all('/<php:(.*[^ ])\s*name\s*=\s*[\"\'](.+?)[\"\'](.[^>]*|)>(.*)<\/php:\1\s*name\s*=\s*[\"\']\2[\"\']\s*>/',$html,$matches, PREG_SET_ORDER);

Dog har jeg 2 problemer med den som jeg håber i vil kunne hjælpe med.
Hvis der er en ny linje inde i tagget som
<php:if name="test">
  some test
  some test 2
</php:if name="test">
så virker det ikke :(

også hvordan vil jeg kunne få det til at virke hvis jeg har et tag inde i et tag?
Avatar billede doomstone-dk- Nybegynder
06. november 2008 - 16:00 #2
Lukker lige dette, da problemet omkring dette spørgsmål er løst.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester