Suivez les fils RSS
 
Auteur
TaCosS
# 02 Sep 2010 - 15:16:39
Citer
4 Posts
Bonjours à tous,
Voila, enfaite j'ai récupérer un script qui était anglais !
Donc j'ai rencontré quelque problème avec l'encodage !
Et puis j'ai trouvé un fichier "include.php" qui dispose du code ci-dessous.
Qui je pense fait une auto translation de certain caractère, et donc ca me mange des caractères telle que le "é" qui devient donc invisible !
Donc j'ai essayé de supprimé ce bous de code, mais je rencontre des problèmes !
J'ai essayé de modifier quelque truk, mais rien à faire !

Malheureusement je ne m'y connait pas trop en php, bien que je suis en train d'apprendre !

Merci d'avance pour votre aide

<?php

setlocale(LC_ALL, 'en_US.UTF8');

function simpleCONV($str)
{
$ltrs = '';
$oldch = array("ö", "ç", "é", "ß", "i", "s", "I", "g");
$newch = array("o", "c", "e", "b", "i", "s", "I", "g");

$dorplc = str_replace($oldch, $newch, $str);

return $ltrs;
}

function clearUTF($s)
{
$r = '';
$s1 = iconv('UTF-8', 'ASCII//TRANSLIT', $s);
for ($i = 0; $i < strlen($s1); $i++)
{
$ch1 = $s1[$i];
$ch2 = mb_substr($s, $i, 1);

$r .= $ch1=='?'?$ch2:$ch1;
}
return $r;
}

function slug($string)
{
$string= strtolower(trim($string));
$string= substr('' .$string. '', 0, 40);
$string= preg_replace('/[^a-z0-9-]/', '-', $string);
$string= preg_replace('/-+/', "-", $string);
$string= substr_replace($string ,"",-1);
return $string;
}

?>

Modifié par TaCosS (02 Sep 2010 - 15:26)

http://www.w3ref.net/ 
^
Heyoan
# 02 Sep 2010 - 15:33:18
Citer
Modérateur
8101 Posts
Salut,

ben c'est le problème quand on récupère un code qu'on ne comprend pas. cligne

Il faudrait connaître le détail de ta configuration (encodage de ton serveur, de tes documents, de tes tables éventuelles et de ta connexion) mais je dirais qu'il faudrait essayer de ne plus faire l'include de cette page et de supprimer l'appel à toutes ses fonctions dans le reste du code (simpleCONV, clearUTF et slug).

Et si ça ne fonctionne pas trouver un équivalent francophone à ce script anglais. murf

^
TaCosS
# 02 Sep 2010 - 15:59:58
Citer
4 Posts
Toutes mes pages disposent de:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />



Et après la connexion à la base Mysql , j'ai mis :
mysql_query("SET NAMES 'utf8'");


Toutes mes pages sont Encoder en UTF-8 sans BOM .

Et dans PHPmyadmin, l'interclassement est
utf8_general_ci


Et malheureusement avec tout ca, je n'arrive pas à afficher les caractères spéciaux, quand j'envoie une Phrase ! Je ne sais pas où elle vont decu

Et j'ai déjà essayé de supprimer tout les includes rien à faire, ca fait bugé xD

Merci de ta réponse ! cligne

http://www.w3ref.net/ 
^
niuxe
# 03 Sep 2010 - 03:58:25
Citer
peuf peuf attitude
1090 Posts
La fonction simpleCONV(), c'est du grand art...
l'etset "ß" est remplacé par un "b" biggol et ... cligne

Pour te donner une première piste, chapitre 8 (menu droite) et un autre tuto dans la même thématique (menu gauche) de ce lien
Modifié par niuxe (03 Sep 2010 - 04:05)

Komodo Edit - Inkscape - Dia
C'est curieux chez les marins ce besoin de faire des phrases

^
Heyoan
# 03 Sep 2010 - 08:45:25
Citer
Modérateur
8101 Posts
TaCosS a écrit :
Et j'ai déjà essayé de supprimer tout les includes rien à faire, ca fait bugé
Il ne faut surtout pas "supprimer tout les includes" mais seulement celui dont tu donnes le code plus haut. Ensuite, pour préciser un peu ce que je te disais il faut supprimer l'appel à ces 3 fonctions donc par exemple remplacer
echo simpleCONV($ma_variable);
par
echo $ma_variable;


niuxe a écrit :
La fonction simpleCONV(), c'est du grand art...
l'etset "ß" est remplacé par un "b"
Salut niuxe EX : Nolem, smile

cette fonction n'est pas si délirante que ça puisque ça correspond au fonctionnement d'iconv //TRANSLIT.

^
niuxe
# 03 Sep 2010 - 10:20:52
Citer
peuf peuf attitude
1090 Posts
Heyoan a écrit :
cette fonction n'est pas si délirante que ça puisque ça correspond au fonctionnement d'iconv //TRANSLIT.


Hello Heyoan, smile

Je ne suis pas d'accord avec toi. La fonction iconv retranscrit très bien l'etset. En Allemand l'etset peut être remplacé par "ss" puisque ça se prononce ainsi. ex : weiss = weiß (blanc)


<?php
//jolie fonction sur un forum ou sur un document php, mais en fait, elle sert à rien.
function simpleCONV($str){

$ltrs = "";
$oldch = array("ö", "ç", "é", "ß", "i", "s", "I", "g");
$newch = array("o", "c", "e", "b", "i", "s", "I", "g");

$dorplc = str_replace($oldch, $newch, $str);

return $ltrs;

}

$une_chaine = "une chaine avec des caractères indiqués dans le vieux tableau : ö - ç - é - ß - i - s - I - g";

echo simpleCONV($une_chaine);

$s = "ß";

$s1 = iconv('UTF-8', 'ASCII//TRANSLIT', $s);

echo $s." - ".$s1;
?>


Peut être que le développeur a forcé sur l'absinthe ou s'est trop inspiré d'une toile de Picassiette (coloration syntaxique) ? Un peu de couleur que diable dans ce monde de brutes ! xD
Modifié par niuxe (03 Sep 2010 - 10:32)

Komodo Edit - Inkscape - Dia
C'est curieux chez les marins ce besoin de faire des phrases

^
Heyoan
# 03 Sep 2010 - 10:25:52
Citer
Modérateur
8101 Posts
niuxe a écrit :
La fonction iconv retranscrit très bien l'etset.
Ce n'est pas de cela que je parlais : je disais qu'il s'est basé sur le fonctionnement d'iconv //TRANSLIT pour remplacer ce caractère par un b ce qui peut être tout à fait pertinent dans le cas par exemple d'un nom de répertoire à créer. cligne

^
niuxe
# 03 Sep 2010 - 11:02:48
Citer
peuf peuf attitude
1090 Posts
Heyoan a écrit :
Ce n'est pas de cela que je parlais : je disais qu'il s'est basé sur le fonctionnement d'iconv //TRANSLIT pour remplacer ce caractère par un b ce qui peut être tout à fait pertinent dans le cas par exemple d'un nom de répertoire à créer. cligne


Il n'y a rien de pertinent puisque c'est faux !
traduction exact a écrit :

Mein Repertoire ist weiss (weiß) = Mon répertoire est blanc (blanc)


l'artiste a écrit :

Mein Repertoire ist weib = Mon répertoire est femme

biggol

J'ai bien saisie qu'il s'est basé sur iconv() et je l'entend bien ainsi. Cependant, cela me fait penser à ceci : rasta . Le développeur a dû forcé un peu trop dessus et dans ses délires psyché a voulu réinventer la roue carré... murf
Modifié par niuxe (03 Sep 2010 - 11:12)

Komodo Edit - Inkscape - Dia
C'est curieux chez les marins ce besoin de faire des phrases

^
Heyoan
# 03 Sep 2010 - 11:10:10
Citer
Modérateur
8101 Posts
OK : je te propose qu'on arrête d'encombrer le sujet de TaCosS avec nos réflexions existentielles qui ne doivent pas le passionner...

^
TaCosS
# 03 Sep 2010 - 11:54:11
Citer
4 Posts
Lol au final je sais plus trop quoi faire xD, En tout cas merci de votre intéret que vous porter à mon sujet !
Donc au final je fait ce que ma dit Heyoan5

Heyoan a écrit :
Il ne faut surtout pas "supprimer tout les includes" mais seulement celui dont tu donnes le code plus haut. Ensuite, pour préciser un peu ce que je te disais il faut supprimer l'appel à ces 3 fonctions donc par exemple remplacer
echo simpleCONV($ma_variable);
par
echo $ma_variable;


Salut niuxe EX : Nolem, smile

cette fonction n'est pas si délirante que ça puisque ça correspond au fonctionnement d'iconv //TRANSLIT.


http://www.w3ref.net/ 
^