/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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

[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.


--
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 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/



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste