[PHP] caractère invisible ! Script récupérer

Fermé
TaCosS - 2 sept. 2010 à 14:49
canarder Messages postés 1714 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 - 2 sept. 2010 à 17:41
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 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;
	}
	
   	?>


A voir également:

2 réponses

Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
2 sept. 2010 à 16:18
Salut,
ton include ne contient que des déclarations de fonctions, il n'y a rien d'automatique.
Pour faire propre il faudrait que tu supprimes dans tout le site les appels à ces trois fonctions simpleCONV, clearUTF et slug. La plupart des éditeurs de code source proposent des outils de recherche/remplacement dans plusieurs fichiers à la fois (sous Notepad++, Ctrl+Maj+F).

Sinon tu peux te contenter de « neutraliser » ces fonctions comme ceci :
function simpleCONV($str)
{
	return $str;
}

function clearUTF($s)
{
	return $s;
}

function slug($string)
{
	return $string;
}


Par ailleurs, je ne sais pas où tu as eu ce script mais visiblement c'est du travail d'amateur : simpleCONV renvoie toujours une chaîne vide, et est censée remplacer "ß" par "b", ce qui est faux car ß est une lettre allemande, Eszett, qui est une variante de la lettre S.

;)
1
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
2 sept. 2010 à 16:24
J'ajouterai que si tu es en train d'apprendre, c'est pas ce qu'il y a de mieux que de récupérer des scripts déjà tout fait..
0
canarder Messages postés 1714 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 355
2 sept. 2010 à 17:41
pour encoder en html :
$var = htmlentities($var);
0