|
| Ordentligt html-output Fra : Lars Olesen |
Dato : 15-12-03 12:39 |
|
Det meste af min kode genereres fra php-scripts, men det giver lidt
problemer med at få noget ordentligt html-output.
Hvis fx jeg skriver:
<?php
echo '<div id="content">';
echo ' <p>Test</p>';
echo '</div';
?>
Så kommer outputtet på en linie. Så kan jeg naturligvis sætte følgende
endelse på alle outputs: . "\n", så den laver et linieskift, men hvis nu
det outputtede er lidt mere komplekst!
Fx bruges ofte:
<?php
echo ' <div>
<div>
</div>
</div>';
?>
Så er det til at overskue i selve koden, men outputtet vil have en lidt
underlig konsekvens på den første linie, som kommer til at stå forskudt.
Så kan man gøre sådan her:
<?php
function udskriv() {
if ($something) {
echo '
<div>
<div>
</div>
</div>';
}
}
?>
Så er problemet imidlertid, at det måske kommer til at stå for langt
inde i selve html-koden, end det intenderede, fordi den overordnede
struktur er som følger:
<div id="content">
<div>
<div>
</div>
</div>
</div>
Og det er jo lidt dumt. Hvad gør I for at lave noget ordentlig output?
--
Lars
www.fodboldenslegestue.dk www.larsolesen.dk
www.discimport.dk www.vih.dk
| |
Henrik Stidsen (15-12-2003)
| Kommentar Fra : Henrik Stidsen |
Dato : 15-12-03 12:40 |
|
Lars Olesen <lsolesen@hotmail.com> wrote in
news:3fdd9d02$0$95014$edfadb0f@dread11.news.tele.dk
> Og det er jo lidt dumt. Hvad gør I for at lave noget ordentlig
> output?
Linieskift = \n
Tabulator = \t
Ellers plejer jeg at ignorere alt andet end linieskiftene når jeg
laver output fra PHP - det er alligevel så sjældent jeg kigger på den
kode der er spyttet ud :)
--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
"Nogen gange kan ens liv godt føles som et puslespil, hvor brikkerne
bevæger sig og skifter farve og størrelse når man rører dem."
- Emme, http://emme.dk/2003_11_01_arkiv.html#106840650828914899
| |
Lars Olesen (15-12-2003)
| Kommentar Fra : Lars Olesen |
Dato : 15-12-03 12:42 |
|
> Så er problemet imidlertid, at det måske kommer til at stå for langt
> inde i selve html-koden, end det intenderede, fordi den overordnede
> struktur er som følger:
Lige en lille præcisering af struktur og mit output!
> <div id="content">
<!-- Outputtet -->
> <div>
> <div>
> </div>
> </div>
<!-- Outputtet slut -->
>
> </div>
--
Lars
www.fodboldenslegestue.dk www.larsolesen.dk
www.discimport.dk www.vih.dk
| |
Dan Molberg (15-12-2003)
| Kommentar Fra : Dan Molberg |
Dato : 15-12-03 13:24 |
|
Lars Olesen wrote:
> Det meste af min kode genereres fra php-scripts, men det giver lidt
> problemer med at få noget ordentligt html-output.
-cåt-
> Og det er jo lidt dumt. Hvad gør I for at lave noget ordentlig output?
Du burde egenligt lade være med at echo og printe din HTML, det er ikke det
optibale at gøre, hop hellere ind og ud af PHP når du laver henholdsvis PHP
og HTML. F.eks:
<?php
if (true) {?>
<div id="<?php echo $content?>">
<p>Test</p>
</div
<?php
}
?>
Det giver PHP kode der afvikles hurtigere, fordi når du skriver evho og
print skal PHP pharse det der udskrives, det tager altsammen tid, hvorimod
når du er gået ud af PHP udskrives det bare.
--
MVH Dan Molberg
http://beyond.repair.dk/
| |
Lars Olesen (15-12-2003)
| Kommentar Fra : Lars Olesen |
Dato : 15-12-03 13:42 |
|
> Du burde egenligt lade være med at echo og printe din HTML, det er ikke det
> optibale at gøre, hop hellere ind og ud af PHP når du laver henholdsvis PHP
> og HTML. F.eks:
> <?php
> if (true) {?>
> <div id="<?php echo $content?>">
> <p>Test</p>
> </div
> <?php
> }
> ?>
Tænkte det nok :( Nu er det hovedsageligt i funktioner eller klasser, at
jeg printer eller echoer html-output, men her er det også bedre at hoppe
ind og ud?
--
Lars
www.fodboldenslegestue.dk www.larsolesen.dk
www.discimport.dk www.vih.dk
| |
Peter Brodersen (15-12-2003)
| Kommentar Fra : Peter Brodersen |
Dato : 15-12-03 13:50 |
|
On Mon, 15 Dec 2003 13:42:11 +0100, Lars Olesen <lsolesen@hotmail.com>
wrote:
>Tænkte det nok :( Nu er det hovedsageligt i funktioner eller klasser, at
>jeg printer eller echoer html-output, men her er det også bedre at hoppe
>ind og ud?
Jeg vil ikke anbefale det. På et tidspunkt finder man fx ud af, at man
ikke lige skal outputte det, men måske bare returnere html'en (typisk
i funktioner). Her vil det være lettere at omskrive "print ..." til
"$content = ...".
Du k an evt. kigge på heredoc-syntaksen, hvis du vil have en
mellemvej, der også giver muligheder for at bruge variable undervejs:
http://dk.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
--
- Peter Brodersen
Ugens sprogtip: jamen (og ikke jammen)
| |
Dan Molberg (15-12-2003)
| Kommentar Fra : Dan Molberg |
Dato : 15-12-03 14:51 |
|
Peter Brodersen wrote:
> On Mon, 15 Dec 2003 13:42:11 +0100, Lars Olesen <lsolesen@hotmail.com>
> wrote:
>
>> Tænkte det nok :( Nu er det hovedsageligt i funktioner eller
>> klasser, at jeg printer eller echoer html-output, men her er det
>> også bedre at hoppe ind og ud?
>
> Jeg vil ikke anbefale det. På et tidspunkt finder man fx ud af, at man
> ikke lige skal outputte det, men måske bare returnere html'en (typisk
> i funktioner). Her vil det være lettere at omskrive "print ..." til
> "$content = ...".
Hvor svært er det lige at lave en ?> om til $content = ' og en <?php til ';
--
MVH Dan Molberg
http://beyond.repair.dk/
| |
Leonard (15-12-2003)
| Kommentar Fra : Leonard |
Dato : 15-12-03 14:55 |
|
"Dan Molberg" <beyond@repair.void> wrote:
>Hvor svært er det lige at lave en ?> om til $content = ' og en <?php til ';
Det er dobbelt så omstændeligt som at lave print om til $content=
--
mvh Leonard http://leonard.dk/
Det er en muldvarp på motorcykel!
Hvad er det, der er småt, sort og meget hurtigt?
http://usenet.dk/netikette/citatteknik.html
| |
Dan Molberg (15-12-2003)
| Kommentar Fra : Dan Molberg |
Dato : 15-12-03 15:02 |
|
Leonard wrote:
> "Dan Molberg" <beyond@repair.void> wrote:
>
>> Hvor svært er det lige at lave en ?> om til $content = ' og en <?php
>> til ';
>
> Det er dobbelt så omstændeligt som at lave print om til $content=
Kommer jo an på om man har lavet:
echo "gjhjghfk";
echo "gjhjghfk";
echo "gjhjghfk";
echo "gjhjghfk";
echo "gjhjghfk";
echo "gjhjghfk";
Så kan jeg ikke se fordelen mere....
--
MVH Dan Molberg
http://beyond.repair.dk/
| |
Dan Molberg (15-12-2003)
| Kommentar Fra : Dan Molberg |
Dato : 15-12-03 14:50 |
|
Lars Olesen wrote:
>> Du burde egenligt lade være med at echo og printe din HTML, det er
>> ikke det optibale at gøre, hop hellere ind og ud af PHP når du laver
>> henholdsvis PHP og HTML. F.eks:
>> <?php
>> if (true) {?>
>> <div id="<?php echo $content?>">
>> <p>Test</p>
>> </div
>> <?php
>> }
>>>
>
> Tænkte det nok :( Nu er det hovedsageligt i funktioner eller klasser,
> at jeg printer eller echoer html-output, men her er det også bedre at
> hoppe ind og ud?
Jo mindre at PHP phrase, jo hurtigere går det....
--
MVH Dan Molberg
http://beyond.repair.dk/
| |
Peter Brodersen (15-12-2003)
| Kommentar Fra : Peter Brodersen |
Dato : 15-12-03 20:45 |
|
On Mon, 15 Dec 2003 14:49:48 +0100, "Dan Molberg" <beyond@repair.void>
wrote:
>Jo mindre at PHP phrase, jo hurtigere går det....
Det er en sandhed taget ud af kontekst. Det er ikke forskellen mellem
de to tilfælde, der tager tid.
Jeg har nu gået ind på din side og klikket rundt på et par sider. De
ressourcer, PHP har brugt på det, indhentes nok ikke i år ved at du
omskriver den del af PHP-koden :)
Dertil kommer selvfølgelig, at den slags mikrooptimering let kan koste
mere i arbejdstid end i serverkraft, hvis koden ender med at blive
uoverskuelig.
--
- Peter Brodersen
Ugens sprogtip: jamen (og ikke jammen)
| |
Lars Olesen (15-12-2003)
| Kommentar Fra : Lars Olesen |
Dato : 15-12-03 13:54 |
| | |
Dan Molberg (15-12-2003)
| Kommentar Fra : Dan Molberg |
Dato : 15-12-03 14:54 |
|
Lars Olesen wrote:
> [snip]
> Noget med at HTML og PHP bør være hver for sig.
> [snip]
>
> Men det ændrer i øvrigt ikke på, at html-outputtet i fx funktioner vil
> få noget forkert indrykning ift. det intenderede, hvis man samtidig
> vil holde en god struktur i sin PHP-kode.
Man kan ikke få alt..... men man kan sagtens gøre det læseligt, f.eks går
jeg det at jeg når jeg laver udskrifte fra funktioner laver jeg en <!--
"funktionavn" output start-->´og en <!-- "funktionavn" output end-->......
--
MVH Dan Molberg
http://beyond.repair.dk/
| |
|
|