web-dev-qa-db-fra.com

Variable php en HTML pas autrement que: <? php echo $ var; ?>

Je travaille beaucoup en HTML mixte et PHP et la plupart du temps, je veux juste du HTML solide avec quelques variables PHP] pour que mon code ressemble à ceci:

<tr><td> <input type="hidden" name="type" value="<?php echo $var; ?>" ></td></tr>

Ce qui est assez moche. N'y a-t-il pas quelque chose de plus court, plutôt du suivant?

<tr><td> <input type="hidden" name="type" value="$$var" ></td></tr>

C'est possible mais vous restez coincé avec le "" _ (vous devez tous les remplacer par '') et la mise en page est parti

echo "<tr><td> <input type="hidden" name="type" value="$var" ></td></tr>"

Y a-t-il quelque chose de mieux?

57
matthy

Il y a la version courte de votre code, qui est parfaitement acceptable à utiliser malgré des recommandations obsolètes, sinon:

<input type="hidden" name="type" value="<?= $var ?>" >

qui (avant PHP 5.4) nécessite que de courtes balises soient activées dans votre configuration php. Il fonctionne exactement comme le code que vous avez saisi; ces lignes sont littéralement identiques dans leur implémentation interne:

<?= $var1, $var2 ?>
<?php echo $var1, $var2 ?>

C'est à peu près tout pour les solutions intégrées. Il existe de nombreuses bibliothèques de modèles tierces qui facilitent l'intégration de données dans votre sortie. smarty est un bon point de départ.

74
meagar

Utilisez la syntaxe HEREDOC . Vous pouvez mélanger des guillemets simples et doubles, des variables et même des appels de fonctions avec des balises HTML non modifiées/non échappées.

echo <<<MYTAG
  <tr><td> <input type="hidden" name="type" value="$var1" ></td></tr>
  <tr><td> <input type="hidden" name="type" value="$var2" ></td></tr>
  <tr><td> <input type="hidden" name="type" value="$var3" ></td></tr>
  <tr><td> <input type="hidden" name="type" value="$var4" ></td></tr>
MYTAG;
23
code_burgar

Je pense vraiment que vous devriez adopter le moteur de template Smarty comme librairie php standard pour vos projets.

http://www.smarty.net/

Name: {$name|capitalize}<br>
5
gcb

Je vous déconseille d'utiliser des balises, voir Est-ce que les balises courtes sont acceptables? PHP? = = pour plus d'informations sur les raisons.

Personnellement, ça ne me dérange pas de mélanger HTML et PHP comme si

<a href="<?php echo $link;?>">link description</a>

Tant que j'ai un éditeur de code avec une bonne coloration syntaxique, je pense que c'est assez lisible. Si vous commencez à faire écho à HTML avec PHP, alors vous perdez tous les avantages de la syntaxe en surbrillance de votre HTML. Un autre inconvénient de l'écho en HTML est le contenu avec les guillemets, ce qui suit est beaucoup moins lisible à mon humble avis.

echo '<a href="'.$link.'">link description</a>';

Le plus gros avantage pour moi, avec un écho simple et une boucle simple dans PHP) et le reste en HTML, est que l'indentation est cohérente, ce qui améliore finalement la lisibilité/la lisibilité.

1
Niels Bom

Il existe de nombreux systèmes de gabarits offrant une syntaxe plus compacte pour vos vues. Smarty est vénérable et populaire. Cet article en répertorie 10 autres.

1
Jordan Running

Dans une section php avant la section HTML, utilisez sprinf () pour créer une chaîne constante à partir des variables:

$mystuff = sprinf("My name is %s and my mother's name is %s","Suzy","Caroline");

Ensuite, dans la section HTML, vous pouvez faire ce que vous voulez, par exemple:

<p>$mystuff</p> 
1
Coly Moore