Problème de fonction avec include()

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

isolu
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 104
Inscription: Lun Nov 21, 2005 20:52

Problème de fonction avec include()

Message le Lun Mar 20, 2006 21:13

Bonjour,

J'ai un drôle de problème, J'ai jamais eu de problème en utilisant le include() de php mais j'en ai un et je suis incapable de le régler. J'ai une fonction que lorsque elle est dans le document direct elle fonctionne très bien mais si elle est dans un autre fichier et que ce fichier est appellé avec le include la fonction fonctionne pas bien.

La fonction est des simples str_replace() pour régler le problème d'un document copié et collé en provenance d'un document Microsoft Word dans un formulaire HTML. Certains caractères comme “ ” ‘ ne fonctionne pas bien.

Voici ma fonction :
Code: Tout sélectionner
function word_to_html($text){// for copy and paste from Microsoft Word
   $text = str_replace("“", "“", $text);
   $text = str_replace("”", "”", $text);
   $text = str_replace("‘", "‘", $text);
   $text = str_replace("’", "’", $text);

   return $text;

}


Donc si la fonction est dans le même fichier qui l'appelle tout fonctionne, les caractères sont changé en caractères HTML. Mais si je met la fonction dans un include parceque j'ai plus d'une page qui a besoin de la fonction, ça fonctionne plus.

J'ai fait une test, j'ai ajouté d'autres caractères:
Code: Tout sélectionner
function word_to_html($text){// for copy and paste from Microsoft Word
   $text = str_replace("“", "“", $text);
   $text = str_replace("”", "”", $text);
   $text = str_replace("‘", "‘", $text);
   $text = str_replace("’", "’", $text);
   $text = str_replace("<", "<", $text);
   $text = str_replace(">", ">", $text);
   $text = str_replace("?", "?", $text);
   $text = str_replace("%", "%", $text);

   return $text;

}


Résulat, ça fonctionne pour toutes les autres caractères excepté les 4
premiers et ces ceux là qui me cause des problèmes.

Au secours!!


rvbousse
Nouveau WRInaute
 
Messages: 19
Inscription: Sam Fév 25, 2006 14:51

Message le Lun Mar 20, 2006 21:38

Bonsoir,

Code: Tout sélectionner
$text = str_replace("<", "<", $text);
   $text = str_replace(">", ">", $text);
   $text = str_replace("?", "?", $text);
   $text = str_replace("%", "%", $text);


Ces 4 lignes ne font rien... car elles remplacent un caractère par le même caractère (pb de copier/coller)... ce qui te donne l'impression qu'elles fonctionnent, mais en fait, elles ne doivent pas mieux fonctionner que les 4 premières.

Pour ma part, je ferai dans la fonction le premier str_replace sur $text puis après :

$str_text = str_replace("'","'",$text);
$str_text = str_replace("'","'",$str_text);

(en mettant bien les bons caractères entre les doubles quotes " ")

etc...

et la fin :

return $str_text;

Cela fonctionne, j'ai une fonction comme cela...

Je ne suis pas un expert, mais le php doit se mélanger les pinceaux entre la variable d'appel et ta variable interne de fonction...comment ferait-il pour savoir faire la différence...elle porte toutes les deux le même nom.

A+

isolu
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 104
Inscription: Lun Nov 21, 2005 20:52

Message le Lun Mar 20, 2006 22:18

Oups!

Dans la fonction ce n'est le même caratère, le > est remplacé par &#62. Et c'est ainsi pour toutes les autres. Je remplace les caractères par son code HTML. Evidement ici on le voit pas parceque le naviguateur interprète le html.

Code: Tout sélectionner
str_replace(">", "Le code html", $text);
Dernière édition par isolu le Ven Mar 31, 2006 23:29, édité 1 fois.


f_trt
WRInaute passionné
WRInaute passionné
 
Messages: 781
Inscription: Sam Sep 17, 2005 22:36

Message le Mar Mar 21, 2006 0:07

On dirait un problème de codage de caractères ?

Si certains ordres de ta fonction fonctionnent c'est que l'include est ok et que la fonction fait son travail. Maintenant il semble que lorqu'elle provient d'un autre fichier certains caractères ne soit plus correctement interprétés est-ce le même editeur qui a fait le fichier include et l'autre fichier ou tu as l'include dedans ?
Est-ce que tu les publies de la même façon par exemple en binaire si c'est pas ftp ?

C'est une piste.

A+

isolu
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 104
Inscription: Lun Nov 21, 2005 20:52

Message le Ven Mar 31, 2006 23:32

J'ai finalement trouver la fonction pour régler mon promlème
du copie coller d'un document word à un formulaire HTML.


Code: Tout sélectionner
function convert_word_to_html($string){

   $text = htmlentities($string, ENT_QUOTES,'UTF-8');

   return $text;

}


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités