par
Ryle » 06 mai 2015, 00:01
Le problème vient dans la construction de ta balise html. Lorsque tu génères du code html, pense toujours au résultat que tu veux obtenir :
$description = "L'orange";
echo " <meta name='description' content='".$description."' />";
// génère le code html suivant : <meta name='description' content='L'orange' />
La balise content délimitée par des apostrophes considère donc que son contenu s'arrête ici : content='L' ; et que ta balise contient un attribut nommé orange' qu'il ne connait pas et n’interprétera donc pas.
Il te faut soit transformer l'apostrophe en une entité html (afin que la chaine ne soit pas tronquée) :
$description = htmlentities("L'orange", ENT_QUOTES); // htmlentities convertit tous les caractères éligibles en entités HTML
echo " <meta name='description' content='".$description."' />";
// génère le code html suivant : <meta name='description' content='L'orange' />
La valeur de l'attribut content est ainsi bien délimité et n'est plus "coupé" en deux
Autre solution plus simple, délimiter tes attributs avec des guillemets au lieu d'apostrophes :
$description = "L'orange";
echo '<meta name="description" content="' . $description . '" />';
// génère le code html suivant : <meta name="description" content="L'orange" />
Là encore, la valeur de l'attribut est proprement délimitée.
Le problème vient dans la construction de ta balise html. Lorsque tu génères du code html, pense toujours au résultat que tu veux obtenir :
[php]$description = "L'orange";
echo " <meta name='description' content='".$description."' />";
// génère le code html suivant : <meta name='description' content='L'orange' />[/php]
La balise content délimitée par des apostrophes considère donc que son contenu s'arrête ici : content='L' ; et que ta balise contient un attribut nommé orange' qu'il ne connait pas et n’interprétera donc pas.
Il te faut soit transformer l'apostrophe en une entité html (afin que la chaine ne soit pas tronquée) :
[php]$description = htmlentities("L'orange", ENT_QUOTES); // htmlentities convertit tous les caractères éligibles en entités HTML
echo " <meta name='description' content='".$description."' />";
// génère le code html suivant : <meta name='description' content='L'orange' />[/php]
La valeur de l'attribut content est ainsi bien délimité et n'est plus "coupé" en deux
Autre solution plus simple, délimiter tes attributs avec des guillemets au lieu d'apostrophes :
[php]$description = "L'orange";
echo '<meta name="description" content="' . $description . '" />';
// génère le code html suivant : <meta name="description" content="L'orange" />[/php]
Là encore, la valeur de l'attribut est proprement délimitée.