17. april 2003 - 14:44Der er
8 kommentarer og 1 løsning
Finde php kode i fil
hej
Jeg har brug for en måde ( en regular expression ) der kan læse alle forekomster af PHP kode i en fil, og gøre det muligt at lave dem om til noget andet.
Der hvor jeg selv går lidt død i det, er hvis man f.eks inde i sin kode har skrevet <? eller ?>, da det jo i bund og grund er dem man søger efter (ja, det forekommer måske, aldrig, men det kan lade sig gøre, f.eks i en streng).
if (preg_match_all("'<\?(php|)(.*)\?>'isU", $file_content, $regs)) { print_r($regs); }
i - caseless s - 'dotall' dvs., '.' i regex'en matcher ALT (også newlines, som den normalt ikke gør) U - ungreedy (hvis ej brugt vil den match fra første <? til sidste ?> incl. alt HTML imellem, hvis der er noget)
ja, den gør også det den skal, men som du nok kan se står der jo ?> inde i kode, og det trigger den på.
F.eks: <? echo("<? hej(\"hejsa\"); ?>"); ?>
Det der står inden i strengen der bliver skrevet ud, indeholder ?> og derfor finder man ikke hele kode-blokken, men kun en smule af den ( <? echo("<? hej(\"hejsa\"); ?> ) og det er jo ikke det der er meningen.
Det er stadig et problem i den løsning jeg selv kom frem til, men jeg ved så ikke helt hvordan det hele kan løses - hvis man vil være helt sikker skal man jo checke om man er inden i en streng, og end ikke det vil give det helt rigtige resultat ( så vidt jeg lige kan tænke mig frem til ).
Synes godt om
Ny brugerNybegynder
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.