MiSP Skrevet 11. juni 2008 Del Skrevet 11. juni 2008 Finnes det en funksjon som kan sette inn et visst antall mellomrom på begynnelsen av hver linje i include? Jeg lurer på dette fordi jeg da med letthet kunne laget en ryddig html-kode. Ta for eksempel følgende (erstatt bindestreker med mellomrom): <div> ----<h1>Heisann!</h1> ----<?PHP include("hei.php");?> </div> Dette hadde resultert i følgende HTML-kode: <div> ----<h1>Heisann!</h1> ----[første linje av hei.php] [resten av hei.php] </div> Jeg vil ha følgende: <div> ----<h1>Heisann!</h1> ----[første linje av hei.php] ----[resten av hei.php] </div> Jeg vet at jeg bare kan legge til mellomrommene slik det skal være i selve filen hei.php, men dette blir fort rotete, og er ikke dynamisk (dersom filen skulle bli inkludert to steder på to ulike nivåer av innrykk ville dette falt i grus). Lenke til kommentar
Jonas Skrevet 11. juni 2008 Del Skrevet 11. juni 2008 Dette er det verste eksempelet på å blande sammen frontend og backend. Du skal ikke lage fin HTML med PHP! Dersom du absolutt vil lese HTML, f.eks. ved debugging, så benytter du deg av et outputbuffer-script som rydder opp. Ta en titt på Tidy HTML. http://no2.php.net/manual/en/intro.tidy.php Lenke til kommentar
Runar Skrevet 11. juni 2008 Del Skrevet 11. juni 2008 Så det er fyfy å legge inn et par \n og \t for å få kildekoden til å se ryddigere ut? Lenke til kommentar
MiSP Skrevet 11. juni 2008 Forfatter Del Skrevet 11. juni 2008 (endret) Dette er det verste eksempelet på å blande sammen frontend og backend. Du skal ikke lage fin HTML med PHP! Dersom du absolutt vil lese HTML, f.eks. ved debugging, så benytter du deg av et outputbuffer-script som rydder opp. Jeg henter ikke helt med på hva du mener. La oss ta et annet eksempel, da. Jeg har en side med mange undersider. I alle disse bruker jeg include-funksjonen for å hente menyen som skal være til venstre. Når dette er gjort, er den første linjen i menyfilen rykket inn riktig (siden denne kommer på samme innrykk som include-funksjonen), mens de andre linjene har feile innrykk i forhold til resten av html-koden på hovedsiden. Jeg har følgende kode med PHP (igjen, bytt ut bindestreker med mellomrom): <body> ----<div id="container"> --------<div id="header"> ------------[bannerstæsj] --------</div> --------<div id="sidebar1"> ------------<?PHP include("menu.php");?> --------</div> [og så videre] Jeg får ut følgende HTML-kode: <body> ----<div id="container"> --------<div id="header"> ------------[bannerstæsj] --------</div> --------<div id="sidebar1"> ------------<ul id="menu"> ----<li><a href="?content=main">Hovedside</a></li> ----<li><a href="?content=current">Hva skjer?</a> </li> ----<li><a href="?content=hist">Historikk</a> </li> ----<li><a href="?content=contact">Kontakt oss</a></li> </ul> --------</div> [og så videre] Som dere ser over er linje 8-12 rykket inn feil i forhold til resten av html-koden. Jeg vil ha følgende: <body> ----<div id="container"> --------<div id="header"> ------------[bannerstæsj] --------</div> --------<div id="sidebar1"> ------------<ul id="menu"> ----------------<li><a href="?content=main">Hovedside</a></li> ----------------<li><a href="?content=current">Hva skjer?</a> </li> ----------------<li><a href="?content=hist">Historikk</a> </li> ----------------<li><a href="?content=contact">Kontakt oss</a></li> ------------</ul> --------</div> [og så videre] Endret 11. juni 2008 av MiSP Lenke til kommentar
Dryper Skrevet 11. juni 2008 Del Skrevet 11. juni 2008 Har det egentlig noe å si ? Lenke til kommentar
Runar Skrevet 11. juni 2008 Del Skrevet 11. juni 2008 Det har ikke noe mer å si enn at kildekoden blir mer oversiktlig og lesbar. Men det er kanskje ikke alle som bryr seg om kildekoden som vises i nettleseren? Lenke til kommentar
MiSP Skrevet 11. juni 2008 Forfatter Del Skrevet 11. juni 2008 Det har ikke noe mer å si enn at kildekoden blir mer oversiktlig og lesbar. Men det er kanskje ikke alle som bryr seg om kildekoden som vises i nettleseren? Nei, alle bryr seg ikke, men jeg bryr meg, og det er jeg som lager nettsiden. Det er ikke krise om det ikke finnes noen slik funksjon; jeg spurte bare ut av ren interesse. Lenke til kommentar
Jonas Skrevet 11. juni 2008 Del Skrevet 11. juni 2008 (endret) Jeg er meget klar over hva du mener. Jeg sa min mening om det, og ga samtidig et forslag til hvordan du kan printe ut fin HTML. Har du i det hele tatt sett på linken? Endret 11. juni 2008 av Jonas Lenke til kommentar
MiSP Skrevet 11. juni 2008 Forfatter Del Skrevet 11. juni 2008 Jeg er meget klar over hva du mener. Jeg sa min mening om det, og ga samtidig et forslag til hvordan du kan printe ut fin HTML. Har du i det hele tatt sett på linken? Jeg hørte din mening om saken, og jeg forstod som nevnt ikke hva du mente var så galt. Jeg sjekket lenken, men det så mer avansert ut enn jeg gidder å sett meg inn i for en så liten sak. Det er ikke så viktig. Uansett, takk for hjelpen! Lenke til kommentar
MC2 Skrevet 11. juni 2008 Del Skrevet 11. juni 2008 Jeg er meget klar over hva du mener. Jeg sa min mening om det, og ga samtidig et forslag til hvordan du kan printe ut fin HTML. Har du i det hele tatt sett på linken? Jeg hørte din mening om saken, og jeg forstod som nevnt ikke hva du mente var så galt. Jeg sjekket lenken, men det så mer avansert ut enn jeg gidder å sett meg inn i for en så liten sak. Det er ikke så viktig. Uansett, takk for hjelpen! Sier det samme som Jonas her, du skal ikke blande logikk med frontend. Om du er mer opptatt av hvordan html koden din er ut enn backend-en burde du nok ta noen skritt tilbake. Uansett er det mulig, et eksempel: <?php ob_start(); include "jalla.php"; $c = ob_get_contents(); ob_end_clean(); echo str_replace("\n","\n\t\t",$c); Lenke til kommentar
MiSP Skrevet 11. juni 2008 Forfatter Del Skrevet 11. juni 2008 Om du er mer opptatt av hvordan html koden din er ut enn backend-en burde du nok ta noen skritt tilbake. Jeg er ikke mer opptatt av det. Det bare slo meg at det kanskje fantes en lett måte å løse problemet på en gang for alle, og så spurte jeg her. Takk for hjelpen! Lenke til kommentar
Peter Skrevet 14. juni 2008 Del Skrevet 14. juni 2008 Dersom du skriver: ob_start('ob_tidyhandler'); helt i starten av scriptet ditt (toppen av index.php f.eks.), så skulle alt bli bra dersom du har tidy installert. Synes ikke det virker så veldig avansert eller vanskelig. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå