Avatar billede lopolla123 Nybegynder
17. september 2005 - 16:22 Der er 5 kommentarer og
1 løsning

Rekursiv funktion - er dette løsningen?

Jeg har lavet et slags yderst simpelt CMS system, der er baseret på HTML-kodning, hvor man meget simpelt inkluderer andre filer, fx.

------------
index.html:
------------
<table>
#Include#test1.html#
</table>
------------

------------
test1.html:
------------
<table>
#Include#index.html#
</table>
------------

Som man nok bemærker så vil denne løsning give en uendelig løkke, hvor index.html inkluderer test.html, der så igen inkluderer index.html.....og så har vi balladen.

I dette tilfælde er det naturligvis forholdsvis simpelt, men man kan i princippet inkludere i uendeligt mange niveauer, hvilket for så vidt er tanken...

Før webserveren bare står og snurrer så vil jeg jo meget gerne standse den, men hvordan?

Er svaret en rekursiv funktion? Eller er der andre løsninger?
I givet fald nogle forslag til en mulig løsning, fordi mit første bud var at lave et array, hvor man optog include-filen i et array, hvorefter HVIS filnavnet forekom så var der en uendelig løkke, men problemet er jo, at nedenstående vil være lovligt...(med mindre der "under" dette niveau ligger en uendelig løkke)

------------
<table>
#Include#test1.html#
</table>
<table>
#Include#test1.html#
</table>
------------

Håber i nogenlunde forstår, hvad jeg er ude på.....god fornøjelse til dem, der giver sig i kast med min udfordring :-)
Avatar billede erikjacobsen Ekspert
17. september 2005 - 16:28 #1
En meget hurtig løsning er php.net/include_once  - men så kan du heller ikke inkludere noget mere end een gang. Det skal du måske. Så dit array er da en go' idé.
Avatar billede lopolla123 Nybegynder
17. september 2005 - 16:33 #2
Det er ikke en egentlig include jeg laver, fordi jeg kører noget logik ovenfra, hvor jeg, når jeg støder på #Include#Filnavn# åbner og læser filen som en tekstfil (igennem en rekursiv funktion), der så kalder sig selv igen og igen.....
Så jeg kan ikke rigtig bruge den :-(
Men det kunne du jo ikke vide.....

Ja, men jeg har godt nok svært ved lige at lure, hvordan jeg kommer udenom det nævnte problem, hvor jeg jo til tider gerne vil inkludere én fil flere gange.
Avatar billede erikjacobsen Ekspert
17. september 2005 - 16:50 #3
Brug dit array af filer, som du foreslog, som en stak, hvor du lægger en ny fil på, hver gang du "inkluderer", og fjerner den igen, når du er færdig. Hvis du skal til at "inkludere" en ny, som også findes på stakken (dit array), så er det en fejl.
Avatar billede lopolla123 Nybegynder
14. december 2005 - 12:09 #4
Hej Erik.....tak for hjælpen. Hvis du gerne vil have point så læg et svar :-)
Avatar billede erikjacobsen Ekspert
14. december 2005 - 12:54 #5
Jeg samler slet ikke på point, tak. Svar selv, accepter eget svar.
Avatar billede lopolla123 Nybegynder
14. december 2005 - 13:06 #6
ok :-)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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