[PHP] - Apostrophe qui pose problème...

Résolu/Fermé
wenijah Messages postés 72 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 26 janvier 2012 - 20 juin 2007 à 15:44
 alexandre - 24 avril 2008 à 15:56
Bonjour tout le monde!

Alors voilà, j'ai un petit souci d'apostrophe que je dois résoudre sans utiliser le addslashes et avec str_replace, cela ne fonctionne pas ou...

..comme dans l'exemple ci-dessous pour un fichier uploadé...

exemple de titre de fichier : it's crazy.zip

$tep = basename($_FILES['Filedata']['name']);
$var1 = array("'");
$var2 = array("_");
$tep = str_replace($var1, $var2, $tep);


$tep, qui correspond à la donnée de sortie du fichier uploadé, apparaîtra comme "_s crazy.zip" au lieu du résultat voulu "it_s crazy.zip"

Grace à ce résultat, on peut déduire que le problème ne se pose pas après que le script renomme le fichier mais avant!...

Comment faire pour récupérer le début du texte, en l'occurence, "it" ?

Merci d'avance!!!

~W~
A voir également:

2 réponses

Essaye de faire un stripslashes() au nom du fichier avant de le faire passer à la moulinette de basename().
Je pense que les apostrophes magiques sont tout simplement activées, ce qui fait que le nom de fichier devient:
"it\'s crazy.zip"
Basename coupe à chaque occurence de "/" ou de "\". Par conséquent, ça te donne:
"'s crazy.zip"
Enfin, ta chaine de remplacement remplace l'apostrphe par un underscore:
"_s crazy.zip"

Juste une question: pourquoi effectuer un basename sur un nom de fichier?
0
wenijah Messages postés 72 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 26 janvier 2012 6
20 juin 2007 à 16:29
whhaa.. le basename!! La solution de mon problème..

Honnêtement, je ne savais pas trop comment utiliser le basename, je voulais simplement être sûr de mon titre source pour ensuite le remanier.. Ce qui est maintenant chose faite!..

Et je m'étais un peu emmêlé les pinceaux avec 2 variables ($tep qui est le titre original et qui doit le rester et $sep qui est le titre modifié accessible au téléchargement).. Le travail devait être fait sur $sep et non pas $tep!

Merci pour la lumière ! =)

~W~
0
J'ai eu un problème équivalent avec les apostrophes.

en fait dans mon php au moment de déplacer le fichier du répertoire temporaire vers mon répertoire de travail, je fait le stripslashes(). Je n'ai pas encore eu de retour de la MOA, ça a l'air de fonctionner avec un peu près tout les caractères.

Si ça peut aider, voici un extrait de mon "algo" :

if($formVerifOk){
$destination=$chemin_destination.stripslashes($_FILES['xxx']['name']);
if(move_uploaded_file($_FILES['xxx']['tmp_name'], $destination)){
// ok
}else{
$listeErreurs[] = "message je suis pas content "
$formVerifOk = false; // annulation form est ok !
}
}
0