PDA

Bekijk Volledige Versie : Pagina laten parsen



Inca
17/04/04, 19:25
Ik heb vele pagina's "gewone" html, en deze zou ik graag willen laten parsen
door een zelfgemaakte functie (php). Maar het liefst zo dat ik aan de gewone
pagina's niets hoef te doen, en dat ook de aanroep ( domein.nl/pagina.html )
hetzelfde kan blijven. Is er iemand die tips heeft?

Voorbeeld: ik wil alle @ vervangen door @ , maar dan zonder alle
pagina's langs te gaan en aan te passen. Dat is uiteraard eenvoudig met een
str_replace ofzo, maar ik wil het dus doen zonder aanroep in de pagina's
zelf.

(Ik ken de functie 'find and replace all' maar dit is slechts 1 van vele
voorbeelden en ik zou het liever met php oplossen.)

Server is apache, ik heb geen directe toegang tot de config-files
--
Inca

Warden Dave
17/04/04, 19:45
"Inca" <shadow*movements@wanadoo.NOSPAM.invalid> wrote:

> Ik heb vele pagina's "gewone" html, en deze zou ik graag willen laten parsen
> door een zelfgemaakte functie (php). Maar het liefst zo dat ik aan de gewone
> pagina's niets hoef te doen, en dat ook de aanroep ( domein.nl/pagina.html )
> hetzelfde kan blijven. Is er iemand die tips heeft?
>
> Voorbeeld: ik wil alle @ vervangen door &#064; , maar dan zonder alle
> pagina's langs te gaan en aan te passen. Dat is uiteraard eenvoudig met een
> str_replace ofzo, maar ik wil het dus doen zonder aanroep in de pagina's
> zelf.
>
> (Ik ken de functie 'find and replace all' maar dit is slechts 1 van vele
> voorbeelden en ik zou het liever met php oplossen.)
>
> Server is apache, ik heb geen directe toegang tot de config-files

Excuse moi, beste Inca, maar ik begrijp je niet helemaal. Als je doel
is een 'replace' te doen m.b.v. PHP dan kun je toch gewoon directories
doorlopen, bestanden met 'een zekere extensie' lezen, wijzigen en opslaan;
en dat is dat. Als ook dat opslaan kan lukken (i.v.m. rechten) dan is de
rest toch triviaal, zou je denken. (Je laat al doorschemeren te weten hoe
je alle voorkomens van een string wijzigen kunt.) Ik heb het idee dat ik
iets mis...

(In ieder geval lijkt het er niet op dat je je pagina's echt wilt laten parsen;
tot bijv. 1 (node-) tree van element-objecten...)

WD

Inca
17/04/04, 22:15
Warden Dave wrote:
> Excuse moi, beste Inca, maar ik begrijp je niet helemaal. Als je doel
> is een 'replace' te doen m.b.v. PHP dan kun je toch gewoon directories
> doorlopen, bestanden met 'een zekere extensie' lezen, wijzigen en
> opslaan;

Ik bedoelde eigenlijk runtime, dus niet de brontekst te wijzigen, maar
alleen de output elke keer opnieuw. (Maar, het opslaan en vervangen is
misschien ook een idee...)

Ik heb dus een php-bestand met de functie parsefile( $filename );
en een html-bestand. Als iemand nu domein/bestand.html aanroept, zou de
server eigenlijk
<?php parsefile( "bestand.html" ); ?>
moeten doen.
--
Inca

Warden Dave
17/04/04, 23:25
"Inca" <shadow*movements@wanadoo.NOSPAM.invalid> wrote:
> Warden Dave wrote:

> > Excuse moi, beste Inca, maar ik begrijp je niet helemaal. Als je doel
> > is een 'replace' te doen m.b.v. PHP dan kun je toch gewoon directories
> > doorlopen, bestanden met 'een zekere extensie' lezen, wijzigen en
> > opslaan;

> Ik bedoelde eigenlijk runtime, dus niet de brontekst te wijzigen, maar
> alleen de output elke keer opnieuw. (Maar, het opslaan en vervangen is
> misschien ook een idee...)
>
> Ik heb dus een php-bestand met de functie parsefile( $filename );
> en een html-bestand. Als iemand nu domein/bestand.html aanroept, zou de
> server eigenlijk
> <?php parsefile( "bestand.html" ); ?>
> moeten doen.

Ah, nu begrijp ik je. Het lijkt me dat dat 'on the fly' vervangen (/filteren)
pas te rechtvaardigen valt als die wijzigingen per opvraging weer anders
kunnen zijn. Maar goed, mocht je volharden dan zou je wat je wilt op 'je'
Apache server (?) wellicht al kunnen bereiken met bijv. een Action
directive: http://httpd.apache.org/docs/mod/mod_actions.html#action
http://httpd.apache.org/docs-2.0/mod/mod_actions.html#action

( http://httpd.apache.org/docs/misc/FAQ.html#footer
Zie ook: http://httpd.apache.org/docs-2.0/filter.html ,
http://httpd.apache.org/docs/mod/mod_rewrite.html /
http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html )

groet,
WD

Inca
18/04/04, 20:55
Warden Dave wrote:
> Ah, nu begrijp ik je. Het lijkt me dat dat 'on the fly' vervangen
> (/filteren) pas te rechtvaardigen valt als die wijzigingen per
> opvraging weer anders kunnen zijn.

Ik ben er nog niet helemaal uit. Bij de apestaartjes vervangen is het
bijvoorbeeld zo dat ik graag zou willen dat ik de vervanging kan regelen
zonder alle documenten langs te gaan, en zonder de mensen die de documenten
maken uit te gaan leggen hoe het zit met &#num.

Maar wat ik bijvoorbeeld ook zou willen is het automatisch genereren van een
inhoudsopgave, zoals http://nl.wikipedia.org (en andere wikipedia's) dat
doen. (Ik weet dat wikipedia database-based is, en eigenlijk wil ik zelf nog
even vasthouden aan gewone losse pagina's.) Ik ben nog niet zo thuis in dit
soort dingen, dus misschien zit ik wel helemaal in de verkeerde richting te
zoeken.

> Maar goed, mocht je volharden dan
> zou je wat je wilt op 'je' Apache server (?) wellicht al kunnen
> bereiken met bijv. een Action directive:
> http://httpd.apache.org/docs/mod/mod_actions.html#action

Hartelijk dank. Het is niet 'mijn' server maar bij een hoster, dus ik hoop
dat dit werkt, ik ga het zeker proberen.
--
Inca

Daniel Tryba
19/04/04, 19:45
Inca <shadow*movements@wanadoo.nospam.invalid> wrote:
>> Maar goed, mocht je volharden dan
>> zou je wat je wilt op 'je' Apache server (?) wellicht al kunnen
>> bereiken met bijv. een Action directive:
>> http://httpd.apache.org/docs/mod/mod_actions.html#action
>
> Hartelijk dank. Het is niet 'mijn' server maar bij een hoster, dus ik hoop
> dat dit werkt, ik ga het zeker proberen.

De "php" oplossing is overigens om zelf een ob handler te schrijven.

Zie voorbeeld 1 op: http://nl2.php.net/manual/en/function.ob-start.php

--

Daniel Tryba