web-dev-qa-db-fra.com

HTML en PHP Variable (HTML extérieur PHP code)

Je suis nouveau sur php et je me demande si je peux avoir quelque chose comme ça:

<?php
 ...
 magicFunctionStart();
?>

<html>
   <head>...</head>
   <body>...</body>
</html>

<?php
 $variable = magicFunctionEnd();
 ...
?>

Ce que je dois utiliser maintenant est

<?php
 ...
 $variable = "<html><head>...</head><body>...</body></html>"
?>

Ce qui est ennuyeux et illisible.

23
Maksim Vi.

Avez-vous essayé de "tamponner la sortie"?

<?php
 ...
 ob_start();
?>

<html>
   <head>...</head>
   <body>...<?php echo $another_variable ?></body>
</html>

<?php
 $variable = ob_get_clean();
 ...
?>
66
Wabbitseason

Je pense que vous voulez heredoc syntax.

Par exemple:

$var = <<<HTML
<html>
   <head>
random crap here
</html>
HTML;
15
eplawless

Je ne suis pas vraiment sûr de ce que vous essayez d'accomplir, mais je pense que quelque chose comme la syntaxe heredoc pourrait vous être utile:

<?
$variable = <<< MYSTRING

<html>
   <head>...</head>
   <body>...</body>
</html>

MYSTRING;

Cependant, si vous essayez de créer des modèles HTML, je vous recommande fortement de vous procurer un véritable moteur de templates, tel que Smarty , Dwoo ou Savant .

4
CMS

Ok, ce que vous voulez faire est possible d'une manière.

Vous ne pouvez pas simplement assigner un bloc HTML à une variable php ou le faire avec une fonction. Cependant, il y a plusieurs façons d'obtenir le résultat souhaité.

  1. Étudiez l’utilisation d’un moteur de gabarit (je vous suggère de le faire, cela vaut la peine de toute façon). J'utilise smarty } _, mais il y en a beaucoup d'autres
  2. La seconde consiste à utiliser un tampon de sortie.

L’un des problèmes que vous avez est que tout code HTML que vous avez dans votre page est immédiatement envoyé au client, ce qui signifie qu’il ne peut pas être utilisé comme variable dans php. Cependant, si vous utilisez les fonctions ob_start et ob_end_fush, vous pouvez obtenir ce que vous voulez.

par exemple

<?php 
  somesetupcode();
  ob_start();  ?>
<html>
<body>
html text
</body>
</html>
<?php
  //This will assign everything that has been output since call to ob_start to your    variable.
  $myHTML = ob_get_contents() ;
  ob_end_flush();

?>

J'espère que cela vous aidera à lire sur tampons de sortie dans les documents php.

1
Toby Allen

Je recommande toujours àD'&EACUTE;VITERles fonctions de tampon (commeob_startou etc.) chaque fois que vous avez une alternative (car elles peuvent parfois entrer en conflit avec des éléments du même système).

J'utilise:

function Show_My_Html(){ ?> 
    <html>
      <head></head>
      <body>
         ...
      </body>
    </html>
    <?php 
}

//output anywhere
Show_My_Html();
0
T.Todua
$html_content = '
    <p class="yourcssclass">Your HTML Code inside apostraphes</p>
';
echo $html_content;
0
trainmania100