web-dev-qa-db-fra.com

Double guillemets dans l'écho du script php

J'ai une ligne de code php qui ressemble à ceci:

echo "<script>$('#edit_errors').html('<h3><em>Please Correct Errors Before Proceeding</em></h3>')</script>";

Je voudrais savoir comment ajouter correctement une couleur de police au texte. Si je fais ça:

echo "<script>$('#edit_errors').html('<h3><em><font color="red">Please Correct Errors Before Proceeding</font></em></h3>')</script>";

Le mot "rouge" est en texte noir et le compilateur renvoie une erreur.

Si j'utilise des guillemets simples autour du rouge, le texte n'apparaît pas du tout.

Toute aide est la bienvenue. Merci

11
RXC

Vous devez vous échapper ", il ne sera donc pas interprété comme fin de chaîne. Utilisation \ pour y échapper:

echo "<script>$('#edit_errors').html('<h3><em><font color=\"red\">Please Correct Errors Before Proceeding</font></em></h3>')</script>";

En savoir plus: chaînes et séquences d'échappement

48
Zbigniew

utilisez un HEREDOC , ce qui élimine le besoin d'échanger les types de devis et/ou de les échapper:

echo <<<EOL
<script>$('#edit_errors').html('<h3><em><font color="red">Please Correct Errors Before Proceeding</font></em></h3>')</script>
EOL;
11
Marc B

Échappez à vos citations:

echo "<script>$('#edit_errors').html('<h3><em><font color=\"red\">Please Correct Errors Before Proceeding</font></em></h3>')</script>";
4
John Conde

Vous devez échapper les guillemets dans la chaîne en ajoutant une barre oblique inversée \ avant ".

Comme:

"<font color=\"red\">"
3
Ryan

si vous avez besoin d'accéder à vos variables pour une déclaration d'écho dans vos guillemets, mettez votre variable entre crochets

echo "i need to open my lock with its: {$array['key']}";
2
mark

Vous pouvez simplement renoncer aux guillemets pour les attributs alphanumériques:

echo "<font color=red> XHTML is not a thing anymore. </font>";
echo "<div class=editorial-note> There, I said it. </div>";

Est parfaitement valide en HTML, et bien que toujours évité, absolument en vogue depuis HTML5.

[~ # ~] mises en garde [~ # ~]

0
mario