Ik gebruik al geruime tijd perl en weet er dus al het een en ander over. Nou ben ik dus bezig een perl script te schrijven voor een site. Het probleem echter is, is dat de hele site in PHP is gemaakt.
Ik gebruik die PHP templates dus voor mijn script. Alleen als ik het uitvoer worden de <? PHP ?> tags niet ingelezen door de PHP compiler (of hoe het ook heet).
Ik heb daar zelf een paar oplossingen voor bedacht, maar vraag me af of er een betere mannier voor is. Hier een paar oplossingen:
Met deze oplossing leest hij de komplete site in.
Nu moet mijn perl script dus de gecompilde versie ervan hebben. Dat doe ik nu via een omweg:
Dit werkt niet echt handig. Je word doorgestuurd naar de gegenereerde php pagina.
Zou dit niet via een betere oplossing kunnen? Is er bijvoorbeeld een functie zodat je alles wat in rooster.php kan laten genereren en in een bestand kan zetten om het daarna weer in te lezen door mijn script?
Ik zit hier al een tijdje mee en kom er niet uit. Ik vond iets via de beruchte search optie als 'print "php rooster.php";' Maar dat print de inhoud niet in mn $main string
. Misschien is er zo'n feature als in dos, maar dan in perl als: 'dir > dezemap.txt'. Zodat hij alle output in een bestand zet.
Ik gebruik die PHP templates dus voor mijn script. Alleen als ik het uitvoer worden de <? PHP ?> tags niet ingelezen door de PHP compiler (of hoe het ook heet).
Ik heb daar zelf een paar oplossingen voor bedacht, maar vraag me af of er een betere mannier voor is. Hier een paar oplossingen:
Perl:
1
2
3
4
5
6
7
8
9
10
11
12
| # $main bevat de gegenereerde website. $main =~ s/<\? include\(\"(.+?)\"\); \?>/&readvpage($1)/gie; $main =~ s/<\? require\(\"(.+?)\"\); \?>/&readvpage($1)/gie; sub readvpage { open(FILE,"$_[0]") or &error("Couldn't open $_[0] for reading: $! \n"); @rdfile = <FILE>; close(FILE); local $file; foreach $line (@rdfile) {$file .= $line;} return $file; } |
Met deze oplossing leest hij de komplete site in.
Nu moet mijn perl script dus de gecompilde versie ervan hebben. Dat doe ik nu via een omweg:
Perl:
1
2
3
4
5
6
7
8
9
10
11
12
13
| &writefile("rooster.php",$main); print "Content-type:text/html\n\n"; print qq! <html> <head> <meta http-equiv="refresh" content="0;URL=rooster.php"> </head> <body> <font face="verdana" size="4">PHP Pagina is gegenereerd</font><br> <font face="verdana" size="2">Je word doorgestuurd.</font> </body> </html>!; exit; |
Dit werkt niet echt handig. Je word doorgestuurd naar de gegenereerde php pagina.
Zou dit niet via een betere oplossing kunnen? Is er bijvoorbeeld een functie zodat je alles wat in rooster.php kan laten genereren en in een bestand kan zetten om het daarna weer in te lezen door mijn script?
Ik zit hier al een tijdje mee en kom er niet uit. Ik vond iets via de beruchte search optie als 'print "php rooster.php";' Maar dat print de inhoud niet in mn $main string
[ Voor 0% gewijzigd door Verwijderd op 05-09-2002 14:24 . Reden: perl code tags :) ]