Page 1 sur 1

Remplacer les caractère [ et ]

Posté : 19 janv. 2012, 03:17
par stefane321
jai un script de upload de fichier et pour une raison que je ne comprend pas il n'upload pas les fichier qui contiennent ces caractères [ et ]

Exemple: photo[1].JPG

Alors, j'ai ajouté à mon script une fonction pour changer les caractères ... et t'en qu'a faire j'y change tout les caractères spéciaux.

La fonction change tout les caractères mais refuse de changer les caractères [ et ]

pouvez-vous m'aider svp?

Merci
$car_speciaux = array( '#',' ','À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'È', 'É', 'Ê', 'Ë', 'è', 'é', 'ê', 'ë', 'Ì', 'Í', 'Î', 'Ï', 'ì', 'í', 'î', 'ï', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'Ù', 'Ú', 'Û', 'Ü', 'ù', 'ú', 'û', 'ü', 'ß', 'Ç', 'ç', 'Ð', 'ð', 'Ñ', 'ñ', 'Þ', 'þ', 'Ý','[',']','(',')' );
$car_normaux  = array( '','_','A', 'A', 'A', 'A', 'A', 'A', 'A', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'E', 'E', 'E', 'E', 'e', 'e', 'e', 'e', 'I', 'I', 'I', 'I', 'i', 'i', 'i', 'i', 'O', 'O', 'O', 'O', 'O', 'O', 'o', 'o', 'o', 'o', 'o', 'o', 'U', 'U', 'U', 'U', 'u', 'u', 'u', 'u', 'B', 'C', 'c', 'D', 'd', 'N', 'n', 'P', 'p', 'Y','_','_','_','_' ); 
$_FILES[$filekey]['name'] = str_replace($car_speciaux, $car_normaux, $_FILES[$filekey]['name']); 

Re: Remplacer les caractère [ et ]

Posté : 19 janv. 2012, 08:11
par sirakawa
testée comme ça:
<?PHP
$car_speciaux = array( '#',' ','À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'È', 'É', 'Ê', 'Ë', 'è', 'é', 'ê', 'ë', 'Ì', 'Í', 'Î', 'Ï', 'ì', 'í', 'î', 'ï', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'Ù', 'Ú', 'Û', 'Ü', 'ù', 'ú', 'û', 'ü', 'ß', 'Ç', 'ç', 'Ð', 'ð', 'Ñ', 'ñ', 'Þ', 'þ', 'Ý','[',']','(',')' );
$car_normaux  = array( '','_','A', 'A', 'A', 'A', 'A', 'A', 'A', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'E', 'E', 'E', 'E', 'e', 'e', 'e', 'e', 'I', 'I', 'I', 'I', 'i', 'i', 'i', 'i', 'O', 'O', 'O', 'O', 'O', 'O', 'o', 'o', 'o', 'o', 'o', 'o', 'U', 'U', 'U', 'U', 'u', 'u', 'u', 'u', 'B', 'C', 'c', 'D', 'd', 'N', 'n', 'P', 'p', 'Y','_','_','_','_' );
$name = "photo[1].png"; 
$new = str_replace($car_speciaux, $car_normaux,$name);
print "$name $new";
?>
ça marche parfaitement.

Re: Remplacer les caractère [ et ]

Posté : 19 janv. 2012, 12:07
par Mazarini
Il n'upload pas, mais le problème se situe à quel moment ? Lors de l'upload ou lors du stockage avec le nom définitif ?

La variable $_FILE ($_FILES ?) contient un code erreur qui peut indiquer la raison de ce problème.