Gå til innhold

Mest effektiv bruk av print


Anbefalte innlegg

Skrevet

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>";

Videoannonse
Annonse
Skrevet

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)

Skrevet

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.

Skrevet

Etter litt testing med microtime(); så er det ikke tvil om at det er raskest å forholde seg til en string. Det er kanskje logisk ettersom det blir færre kall på en funksjon. Takk for hjelpen.

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

Skrevet

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>

Skrevet (endret)

er smak og behag tror jeg...

 

jeg liker btw å skrive det slik

 

<?php

echo "<html>\n".

"<header\n".

"</header\n>".

"</html\n>";

Endret av groenlid
Skrevet (endret)
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
Skrevet

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

Skrevet

Det raskeste er:

$html = '<h1>Title</h1><br />';
$html .= '<b>Mer text</b><br />'
// Bla bla bla bla bla bla
$html .= '<h6>Det lille extra</h6>';

echo $html;

eller

ob_start();
echo '1';
echo '2';
echo '3';
ob_end_flush();

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å
×
×
  • Opprett ny...