anoniem Geplaatst: 7 augustus 2003 Delen Geplaatst: 7 augustus 2003 Hallo, Ik ben bezig met een scrippie dat sites on the fly naar morse vertaalt. Nu ondervind ik iets raars. Zie voorbeeldcode. Het plan is alle HTML, stylesheets and scripts te isoleren, de teksten te vertalen en dan het hele zaakje weer op een hoop te gooien en weer te geven. werkend voorbeeld: [url]http://www.oersoep.nl/oerbagger/2.php?url=http://www.junkmail.nl/[/url] Het lijkt dus best te werken, maar soms ook weer helemaal niet: [url]http://www.oersoep.nl/oerbagger/2.php?url=http://www.zend.com/manual/[/url] Ik dacht aan het maximale grootte van $string, maar dat is onzin gebleken... Heeft iemand een idee / suggestie? [code:1:b1a4d4830c] <? // dit werkt $string = '<script LANGUAGE="JavaScript"> blah! </script> etcetera...' ; if( eregi( '^.*</script[^>]*>', $string, $res ) ){ echo $res[0]; }else{ // geen match echo "Why hast thou forsaken me?!?"; } // dit niet $array = file( 'http://www.zend.com/manual/', 'r'); $string = implode( '', $array ); if( eregi( '^.*</script[^>]*>', $string, $res ) ){ echo $res[0]; }else{ // geen match echo "Why hast thou forsaken me?!?"; } ?> [/code:1:b1a4d4830c] Quote Link naar reactie
anoniem Geplaatst: 7 augustus 2003 Auteur Delen Geplaatst: 7 augustus 2003 -> Webprogrammeren? ik zou niet alleen verwijzen naar een directory, maar naar het bestand zelf. Quote Link naar reactie
anoniem Geplaatst: 7 augustus 2003 Auteur Delen Geplaatst: 7 augustus 2003 Die snap ik niet. Gaan de regexps dan wel werken? Wat voor speciale uitvoer geeft het dan als ik de webserver laat bepalen welke page hij opstuurt? Ik heb het toch maar even getest en ik geloof niet dat het uitmaakt. Quote Link naar reactie
anoniem Geplaatst: 7 augustus 2003 Auteur Delen Geplaatst: 7 augustus 2003 [quote:b8308871ff="Sjoerd Boerhout"]-> Webprogrammeren?[/quote:b8308871ff]Roger that. Quote Link naar reactie
anoniem Geplaatst: 7 augustus 2003 Auteur Delen Geplaatst: 7 augustus 2003 Moe die regexp niet non-greedy worden? Probeer dit eens: if( eregi( '^.*?</script[^>]*>', $string, $res ) ) Geinig script :P Quote Link naar reactie
anoniem Geplaatst: 11 augustus 2003 Auteur Delen Geplaatst: 11 augustus 2003 Leek sense te maken, dus ik heb het geprobeerd: geen effect helaas.... Quote Link naar reactie
anoniem Geplaatst: 11 augustus 2003 Auteur Delen Geplaatst: 11 augustus 2003 Hij lijkt het nu wel te doen, waar lag het nou aan? Quote Link naar reactie
anoniem Geplaatst: 11 augustus 2003 Auteur Delen Geplaatst: 11 augustus 2003 Ik heb de slachtoffer- string in blokjes gehakt.... beetje buffer systeem. Niks anders dan om het probleem heenwerken dus. Quote Link naar reactie
anoniem Geplaatst: 12 augustus 2003 Auteur Delen Geplaatst: 12 augustus 2003 if( eregi( '/^<script.*?<\/script[^>]*>/m', $string, $res ) ) Misschien zoiets dan? Quote Link naar reactie
anoniem Geplaatst: 12 augustus 2003 Auteur Delen Geplaatst: 12 augustus 2003 eeehm.. is te proberen... Waar is die eerste slash voor, en waarom escape je de andere slash? Quote Link naar reactie
anoniem Geplaatst: 12 augustus 2003 Auteur Delen Geplaatst: 12 augustus 2003 Die slashes zijn om aan te geven dat het binnen dat gebied om een regexp gaat. Die back-slash voor de slash is om die te escapen. Die m is de multiline flag. Quote Link naar reactie
anoniem Geplaatst: 12 augustus 2003 Auteur Delen Geplaatst: 12 augustus 2003 ik dacht dat die handel alleen werkte bij de perl-compatible regexp functies... preg() en zo... Quote Link naar reactie
anoniem Geplaatst: 12 augustus 2003 Auteur Delen Geplaatst: 12 augustus 2003 Oeps :oops:, je hebt gelijk. Ik werk niet zoveel met PHP. Volgens mij moet je dan preg_match gebruiken. Zet dan ook de i flag (case insensitive. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen