Utilisez Heredoc ou sortir du mode PHP en mode « html ». Si le Javascript est entièrement statique, ou a quelques parties qui ont besoin d'inclure une valeur PHP, passez en mode html ('?>' En php). Cela permettra à tout éditeur de texte décent de se rendre compte que vous faites du HTML et du Javascript, et de mettre en évidence la syntaxe appropriée. Les éléments suivants sont tous équivalents, mais décider par vous-même qui est plus lisible:
'php pure:
<?php
echo '<script>';
echo ' var x = [' . $somePHPvar . '];';
echo ' alert(x);';
echo '<script>';
?>
'heredoc' syntaxe:
<?php
echo <<<EOF
<script>
var x = [{$somePHPvar}];
alert(x);
</script>
EOF;
?>
'mode html':
<?php ?>
<script>
var x = [<?php echo $somePHPVar ?>];
alert(x);
</script>
plus/minus pour chacun:
- php pur: vous pouvez rester en mode PHP, et vos echo + $ vars seront mis en évidence sous forme de code PHP, mais le html/javascript que vous faites écho sera traité comme du texte brut et coloré comme tel (ex: tous de la même couleur)
- Syntaxe heredoc: Vous restez en mode PHP, mais vous avez l'avantage de ne pas avoir à échapper de guillemets (
'
et "
) dans votre code, donc tout code HTML sera plus propre.La plupart des éditeurs reconnaîtront les variables PHP dans le bloc heredoc et les coloreront de manière appropriée, mais le reste du texte sera traité comme du texte, donc javascript/html se ressemblera. En outre, vous ne pouvez pas insérer d'appels de fonction dans le texte. Vous devez les faire AVANT de lancer l'heredoc et stocker les résultats dans un var, qui peut être inséré. Le HEREDOC peut également être utilisé pour affecter directement des blocs de texte longs dans une variable. 'Html mode': L'éditeur verra/reconnaîtra votre code html, javascript et php et les colorera de manière appropriée. Mais c'est au prix d'avoir à saupoudrer php open/close tags partout où vous avez besoin de remplir une certaine valeur dynamiquement. Sur le plan positif, vous pouvez insérer directement les résultats des appels de fonction (htmlspecialchars()
, urlecncode()
, html_strip_tags()
, etc ...) sans avoir à stocker les valeurs dans un var intermédiaire. Cela rend également le code plus difficile à maintenir car votre PHP est maintenant saupoudré aléatoirement tout au long du code html/javascript.
Tout se résume à ce qui est le plus facile pour le code particulier sur lequel vous travaillez.
Il m'a fallu une seconde pour comprendre pourquoi ces balises PHP semblaient reculer! –
La deuxième balise PHP va casser dans les installations avec short_open_tag = 0. ' php' fonctionne mieux. – fuxia