Gå til innhold

Mest effektiv bruk av print


Anbefalte innlegg

Hallo.

 

Når jeg koder php så liker jeg å kode slik jeg ville ha kodet html koden.

dvs:

print "<html>\n";
print "<header\n";
print "</header\n>";
print "</html\n>";

 

Det jeg lurer på er om det er mer eller mindre effektivt å skrive følgende

print "<html>\n<header>\n</header>\n</html>";

Lenke til kommentar
Videoannonse
Annonse

echo '<html>
<header>
</header>
</html>
';

evt. 
echo '<html>'."\r\n".'<header>'."\r\n".'</header>'."\r\n".'</html>'."\r\n";

 

Aner ikke hva som er mest effektivt, men echo er mer effektivt enn print slik jeg har forstått det, i tillegg til å bruke apostrof(f?) istedet for anførselstegn der du ikke trenger "ekstra" parsing.

 

Står litt om det her:

http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 (echo vs. print)

og her:

http://no.php.net/manual/en/language.types.string.php (strings)

Lenke til kommentar

Uten output buffer så er færrest mulig print/echo definitivt raskest. Grunnen til dette ligger i at det å sende data til bruker krever sitt. Med output buffer vil fortsatt færrest mulig print/echo være raskest, men forskjellen er ikke fult så mye. Kan nevnes at ob vanligvis gir en 10-15% økning i ytelsen primært pga. at man bare sender data til bruker en gang.

Lenke til kommentar
Hallo.

 

Når jeg koder php så liker jeg å kode slik jeg ville ha kodet html koden.

dvs:

print "<html>\n";
print "<header\n";
print "</header\n>";
print "</html\n>";

 

Det jeg lurer på er om det er mer eller mindre effektivt å skrive følgende

print "<html>\n<header>\n</header>\n</html>";

6132338[/snapback]

 

Er vel kanskje ikke helt det du spør etter, men hva med å bruke heredoc?

 

eks:

<?php
$title = "Fin side med heredoc";
print <<<HTML
<html>
<head>
 <title>$title</title>
</head>
<body>
innhold
</body>
</html>
HTML;
?>

 

Da slipper du å skrive \n for linjeskift og \t for tabulatorinnrykk.

Utover dette har jeg hørt at det er marginale forskjeller på print vs echo, så jeg tror neppe du merker forskjell.

Lenke til kommentar

Jeg synes det blir best å skrive masse HTML-kode på denne måten.

<?php
 header(masse tull);
 $title = masse tull;
?>
<html>
 <head>
   <title><?php echo $title; ?></title>
 </head>

 <body>
   <?php
     if (bla bla) {
   ?>
   <p>bla bla bla bla
   <p>bla bla bla bla
   <p>bla bla bla bla
   <p>bla bla bla bla
   <p>bla bla bla bla
   <p>bla bla bla bla
   <?php
     } else {
   ?>
   <li>bla bla bla bla
   <li>bla bla bla bla
   <li>bla bla bla bla
   <li>bla bla bla bla
   <li>bla bla bla bla
   <?php
     }
   ?>
 </body>
</html>

Lenke til kommentar
er smak og behag tror jeg...

 

jeg liker btw å skrive det slik

 

<?php
echo "<html>\n".
       "<header\n".
       "</header\n>".
       "</html\n>";

6134086[/snapback]

Hvorfor ikke bare droppe punktum og newline og skrive det som:
<?php
 echo "<html>
   <header>
   </header>
 </html>\n";

Det blir jo fryktelig mye enklere og lettere å skrive, og gir samme output.

Endret av endrebjorsvik
Lenke til kommentar

Bruk heredoc-stil, da kan du også bruke variabler i html-en enkelt.

Echo vil være marginalt raskere enn print siden print returnerer en verdi, men dette er helt umerkbart. Jeg anbefaler echo siden det er det mest utbredte innen php.

 

// Logikk
$title = 'Page title';
$username = getUsername();
$date = date('Y-m-d');

// Presentasjon
echo <<<HTML
<html>
   <head>
       <title>$title</title>
   </head>
   <body>
       <h1>Vellkommen $username</h1>
       <p>Dato er $date</p>
   </body>
</html>
HTML;

 

Behøver du å loope så genererer du html f.eks gjennom en funksjon når du looper med heredoc der og.

 

Skriver du noe av mer applikasjonsart enn skriptart så vil jeg anbefale å bruke templating eller en kodegenerator.

Kanskje DOM XML pluss XSLT kan være en ide...

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