Html_entity_decode() avant qu'existait-il ?

Résolu
cs_cacoun Messages postés 59 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 21 mai 2013 - 26 sept. 2005 à 23:52
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 29 sept. 2005 à 12:32
Salut à tous,

Voici mon pb du jour.

mon serveur est en php 4.2.2

Or, je voulais utilser html_entity_decode(), mais cette fonction n'existe qu'à partir de 4.3.0.

Ma question est:
Dans ma base de donnée, une personne écrivant dans un livre d'or par exemple, à l'aide de la fonction nl2br(), transforme chaque saut de ligne en
.

Comment le retranscrire, c'est à dire qu'à chaque
, il me faudrait voir apparaitre un saut de ligne ???

Merci de votre aide

12 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
29 sept. 2005 à 12:32
Essaye de jouer avec les styles du conteneur de ton texte. Il y a peut-être un soucis à ce niveau là.
3
jnbrunet Messages postés 258 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 13 novembre 2012
27 sept. 2005 à 00:25
htmlentities()

je c pas si c sa tu voulais...

Jn
0
cs_cacoun Messages postés 59 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 21 mai 2013
27 sept. 2005 à 00:37
J'ai essayé, mais cela ne fonctionne pas
merci
0
jnbrunet Messages postés 258 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 13 novembre 2012
27 sept. 2005 à 00:46
Je comprends mal ta question...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_cacoun Messages postés 59 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 21 mai 2013
27 sept. 2005 à 00:53
la fonction html_entity_decode() n'existe pas avant php 4.3.0

Donc quand dans ma base , j'ai des
, sur la page par exemple livredor.php, il n'y a pas de saut à la ligne. Et la foncytion htmlentities() ne résout pas mon problème....
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 sept. 2005 à 08:41
Hello,



fais voir ton code parce qu'il y a un truc qui m'intrigue.

Quand tu récupères le texte de tes utilisateurs, tu dois faire un
htmlentities () dessus, ok, pour des raisons de sécurité (il y a
d'autres choses à faire hein, ne pas oublier addslashes() notamment).

Une fois que tu affiches ce texte, tu fais tout d'abord un nl2br ().

Ce qui va se passer dans l'ordre :

le mec tape son texte. Le htmlentities () transforme tout caractère
spécial html en son entité. Il est enregistré tel quel dans ta base.
S'il tape <bonjour, dans ta base tu auras : &lg;bonjour.

S'il fait des retours à la ligne, tu auras en effet des \n\l (dépend du système quand même) invisibles.

Lorsque tu affiches, tu ne touches pas aux entités, elles seront
traduites à l'affichages : &lg;bonjour s'affichera ainsi :
<bonjour. Sachant que le < ne sera pas interprété par
l'interpréteur html, juste affiché, grâce à ton htmlentities() que tu
as fait à l'ENREGISTREMENT (pas à l'affichage!). Quant aux sauts de
lignes, ils seront transformés en
grâce au nl2br()
que tu auras fait à l'AFFICHAGE de ta page, pas à l'enregistrement.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 sept. 2005 à 08:42
Et ces
seront interprétés, pas affichés, car ils n'ont pas été touchés par le htmlentities().

Tu n'as pas besoin d'un html_entity_decode () dans ton cas. Relis bien
à quoi servent ces fonctions, je pense que tu t'emmèles un peu les
pinceaux.
0
cs_cacoun Messages postés 59 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 21 mai 2013
29 sept. 2005 à 10:30
Bonjour,


effectivement je n'ai pas tout compris :


Voici mon code qui récupère le texte :


// Function htm(texte) Transforme la mise en forme Ascii d'une textarea en html
Function htm($chaine)
{
$ChaineFinale = "";
if ($chaine!="")
{
$ChaineFinale = htmlentities($chaine);
$ChaineFinale = nl2br($ChaineFinale) ;
$ChaineFinale = addslashes($ChaineFinale);
return ($ChaineFinale);
}
}

*******************************
et celle qui devrait me permettre de tout mettre au format html
//###########################################################
// Function: dhtm(chaine) - Inverse de htm
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function dhtm($chaine)
{
$ChaineFinale = "";
if ($chaine!="")
{
$ChaineFinale = str_replace(chr(10),"",$chaine);
$ChaineFinale = str_replace(chr(34),""",$ChaineFinale);
$ChaineFinale = str_replace("
",chr(10),$ChaineFinale);
$ChaineFinale = str_replace("
",chr(10),$ChaineFinale);
$ChaineFinale = stripslashes($ChaineFinale);
}
return ($ChaineFinale);
}

Voilou,je compte sur ton aide car là je sèche....
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
29 sept. 2005 à 10:36
Rien compris à l'utilité de ton code, lol.



avant mis en bdd :



$chaine = addslashes ($chaine);

$chaine = htmlentities ($chaine);



avant affichage :



$chaine = stripslashes ($chaine);

$chaine = nl2br ($chaine);



echo $chaine;
0
cs_cacoun Messages postés 59 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 21 mai 2013
29 sept. 2005 à 10:46
On approche du but....


Le pb c qu'il ne me fait pas un retour à la ligne , mais un retour puis une ligne blanche et le reste de mon message....
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
29 sept. 2005 à 11:04
Tu es en html, c'est normal.
0
cs_cacoun Messages postés 59 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 21 mai 2013
29 sept. 2005 à 11:45
et ca on peut rien y faire ????
en tous cas merci pour tout....
0
Rejoignez-nous