Avatar billede alvion Nybegynder
11. august 2005 - 20:18 Der er 10 kommentarer

Output filter

Jeg har et eksisterende website i ASP, hvor jeg har brug for (dynamisk) at omskrive delete af det output, som hver enkelt ASP-side skaber, INDEN outputtet sendes til browseren.

Hvis jeg f.eks. har foo.asp:
-----------------------------
<html>
...
Davs med dig
<a href="docs/doc_443.asp">Klik her</a>
...
<%response.write("Mere tekst")%>
</html>
-----------------------------
Vil jeg gerne kunne include en fil i bunden:
<!-- #include file="rewrite.asp"-->

Denne "rewrite.asp" skal så analysere html-koden og f.eks. erstatte "docs/doc_443.asp" med "old/docs/doc_443.asp".

Mit problem er IKKE at lave de korrekte search/replace. Mit problem er, om man kan aflæse outputtet nogen steder.

Objektet "response" har jo en "buffer" attribute, som jeg naturligvis vil sætte til true i starten af scriptet. Men jeg mangler en "response.content", som indeholder alt, hvad der pt. er akumuleret, og som jeg kan pille ved.

Nogen der kan hjælpe mig?
Avatar billede nielle Nybegynder
11. august 2005 - 20:28 #1
Du kan ikke gøre det sådan som du beskriver - jo måske som en mod til din IIS, men det er nok lige vildt nok for denne opgave.

En mulighed er at du - stedet for response.write - gemmer output i en variabel undervejs, og at det så er denne variabel du til sidst udskriver med en enkelt response.write. På den måde så kan du nå at lave rettelser i output inden at de endeligt sendes ud af huset".
Avatar billede alvion Nybegynder
11. august 2005 - 20:33 #2
Ja det frygtede jeg.....

Dit forslag er desværre ikke noget alternativ ;-) Der er simpelthen for mange asp-sider at rette til. Jeg sidder og kigger på, om der er nogen server-komponenter, som kunne give mig det jeg har brug for. Jeg ser lige nu på "AspCache" http://www.webgecko.com/products/aspcache/

Nogen der har erfaringer med det?
Avatar billede nielle Nybegynder
11. august 2005 - 21:03 #3
Må jeg spørge om ombytningen fra "docs/doc_443.asp" til "old/docs/doc_443.asp" er noget som altid skal gøres eller om det er noget som ændre sig dynamisk med omstændighederne? Hvor hvis det er fordi at du har flyttet dit site, så ville det være langt mere effektivt at loade alle ASP-filerne ind i en god editor, som f.eks. UtraEdit, som kan hjælpe dig med at lave en global find-and-replace én gang for alle.
Avatar billede alvion Nybegynder
11. august 2005 - 23:03 #4
Det var blot et eksempel. Hvad der i virkeligheden skal ske er:

1) Jeg udvælger alle links, som indeholder /docs/doc_NNN.asp (hvor NNN er et nummer)
2) Jeg slår op i en database med søgeord baseret på NNN nummeret (giver f.eks. ordet "sofa"
3) Jeg ændrer linket til /sofa/docs/doc_NNN.asp

Databasen med søgeordene kan ændres løbende. Derfor er det højst dynamisk... :-)
Avatar billede alvion Nybegynder
11. august 2005 - 23:06 #5
Arrh havde det bare været PHP... PHP har output buffering metoder, hvor man kan indsætte sine egne filtre.
Avatar billede alvion Nybegynder
11. august 2005 - 23:06 #6
Jeg fandt desværre ud af, at aspcache ikke er til hjælp her.
Avatar billede nielle Nybegynder
12. august 2005 - 09:30 #7
Er det ikke simpelthen muligt at lave de rettelser direkte i databasen en gang for alle?
Avatar billede alvion Nybegynder
14. august 2005 - 23:19 #8
nielle -> Prøv at læse min kommentar pr. 11/8 23:03. Det er noget som skal ske løbende.
Avatar billede nielle Nybegynder
15. august 2005 - 07:31 #9
Læste det godt, men tit så kigger man så meget på et problem, og forsøger kun at se det fra én synsvinkel, at man helt bliver blind over for at der er alternative muligheder.

En alternativ mulighed kunne jo have været at ændre tingene direkte i databasen, eller umiddelbart efter at de var trukket ud af databasen. Desværre er jeg jo ikke så meget inde i din problemstilling som du selv er, og derfor kan jeg heller ikke se hvad der måske dur og hvad der ikke vil kunne du.
Avatar billede alvion Nybegynder
15. august 2005 - 10:46 #10
Jeg kan også godt se din pointe. Problemet er bare, at det er SÅ mange forskellige delsystemer, som jeg skal ind og rette i, hvis jeg vælger den vej.

Jeg vil gå på yderligere jagt efter en ASP komponent, der "samler" outputtet op.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester