Aangezien ik niet de beschikking heb over een database waarin ik alle tekst kan plaatsen, heb ik met eenvoudige code en losse html-bestandjes toch geprobeerd een site te maken die geheel met templates werkt. Dit is me prima gelukt door alle links die in de HTML-bestandjes staan, te vervangen door links die verwijzen naar de template. Dit werkt prima voor interne links.
Het gaat echter mis met externe links. Dan probeert mijn php-document dat externe bestand in te lezen, wat uiteraard niet altijd goed gaat, maar zeker ook niet de bedoeling is (bijv. ivm copyright).
Eerst even wat code. Dit is het gedeelte dat de links verandert:
De eerste twee regels kunnen volgens mij nog wel efficienter, maar het werkt in ieder geval prima, met dien verstande dat het bestand zelf in de root dir staat.
Met externe links gaat het mis. In PHP-code uitgedrukt, krijg je dan een dergelijke output:
Dat wil dus zeggen:
Ik dacht dit met de volgende opdracht te kunnen opvangen:
Echter, er verandert niks aan de output. Heeft iemand enig idee wat ik fout doe?
Is de code overigens duidelijk? Alvast bedankt.
Het gaat echter mis met externe links. Dan probeert mijn php-document dat externe bestand in te lezen, wat uiteraard niet altijd goed gaat, maar zeker ook niet de bedoeling is (bijv. ivm copyright).
Eerst even wat code. Dit is het gedeelte dat de links verandert:
PHP:
1
2
3
4
5
6
7
8
9
10
11
| $huidigedir = eregi_replace ("/home/users/j/u/jubab/www","",realpath($file)); $dirvanfile = dirname($huidigedir); $invoer= implode("",file($file)); $invoer = eregi_replace("href='","href='".$PHP_SELF."?file=.".$dirvanfile."/",$invoer); $invoer = eregi_replace("src='","src='".$dirvanfile."/",$invoer); //hier moeten alle verwijzingen naar een root-dir weer goed worden gezet (want die zijn nu //dubbel, bijv. ?file=./welkom//geschiedenis/ $invoer = eregi_replace(".".$dirvanfile."//","./",$invoer); |
De eerste twee regels kunnen volgens mij nog wel efficienter, maar het werkt in ieder geval prima, met dien verstande dat het bestand zelf in de root dir staat.
Met externe links gaat het mis. In PHP-code uitgedrukt, krijg je dan een dergelijke output:
PHP:
1
| echo "href='".$PHP_SELF."?file=.".$dirvanfile."/http://'"; |
Dat wil dus zeggen:
code:
1
| a href="/phpjubal.php?file=./eenofanderedir/http:// |
Ik dacht dit met de volgende opdracht te kunnen opvangen:
PHP:
1
| $invoer = eregi_replace("href='".$PHP_SELF."?file=.".$dirvanfile."/http://","http://",$invoer); |
Echter, er verandert niks aan de output. Heeft iemand enig idee wat ik fout doe?
Is de code overigens duidelijk? Alvast bedankt.