Gå til innhold

Funksjon for å sette inn et visst antall mellomrom på begynnelsen av hver linje i include?


Anbefalte innlegg

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
Videoannonse
Annonse
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 av MiSP
Lenke til kommentar
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
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 viktig. :)

 

Uansett, takk for hjelpen!

Lenke til kommentar
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 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
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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...