Génération de code HTML avec PHP

Par Kiyauden, il y a 8 ans


Bonjour,

J'ai un problème avec mon code qui n'en ai pas vraiment un, plutôt une incompréhension

Le code

J'ai fait une fonction pour générer une ligne HTML avec pout paramètres le texte à mettre en les balises, la balise, et les paramètres optionnels (id="" par exemple).

/** * Renvoie une chaine de caractères entourée d'un tag HTML * * @param string $string * Chaine de caractères a entourer * @param string $tag * tag HTML * @param array $params * paramères à ajouter dans le tag * @return string Chaine de caractères entourée */ function surroundHTML($string, $tag, $params = []) { $return = "<" . $tag; if (! empty($params)) { foreach ($params as $param) { $return .= " $param "; } } $return .= "> $string"; // le navigateur ajoute la basise fermante automatiquement $return .= "<"; $return .= "&#47"; $return .= $tag; $return .= ">"; return $return; }

Ce qui est bizarre c'est que quand j'utilise la fonction, le navigateur ou PHP (je ne suis pas sûr) ajoute automatiquement une balise fermante

En exemple

echo surroundHTML("Vous êtes connecté", "h1");

Me donne sur le navigateur

Vous êtes connecté</h1>

Dans le code source

<h1> Vous êtes connecté<&#47h1>

Je suppose que c'est à cause du &#47h1 que j'ai mis a la place du / dans mes chaînes de caractères.
J'ai fait ça car c'est la seule solution que j'ai trouvé pour insérer un / sinon tout ce qui est après le / disparaît dans la chaîne de caractère

J'espère que c'est assez clair et merci d'avance pour votre aide.

2 réponses

Axis, il y a 8 ans

Salut,

Tu peux doubler ton slash ou sinon utiliser des simples quotes
;-)

Bon courage

Kiyauden, il y a 8 ans

Merci,
J'étais persuadé d'avoir essayé ça, je ne sais pas ce que j'avais fait différemment.

Mille mercis