Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/07/2007, 14h57   #1
Invité de passage
 
Inscription : avril 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 17
Points : 4
Points : 4
Par défaut Problème d'accent et urlencode

Bonjour,

Je stocke dans une base de données les noms des photos que je veux afficher.
Pour l'affichage j'ai donc une ligne de ce type-là :
Code :
echo "<a href='./photo/".$laphoto['lien_photo']."' target='_blank'><img class='apercu' src='./photo/".$laphoto['lien_photo']."'/></a>";
$laphoto['lien_photo'] contenant bien sûr le nom du fichier.

Si le nom du fichier contient un accent, l'affichage marche très bien sous IE7 mais firefox 2 n'affiche rien. J'ai donc essayer d'utiliser les fonctions urlencode et rawurlencode mais ça ne résout pas le problème. C'est même pire puisque IE n'affiche plus les photos non plus.

Je vous remercie par avance de votre attention,

Cordialement.
palmier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 19h09   #2
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web indépendant

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
bonjour,

Pour ma part j'ai réglé ce problème en enlevant les accents et espace de mes nom de fichiers ou d'images... Je pense qu'il faut prendre cette habitude.

Maintenant, si tu n'as vraiment pas le choix, je vais faire une ch'tite recherche et repasserais par là

++
__________________
LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 08h44   #3
Invité de passage
 
Inscription : avril 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 17
Points : 4
Points : 4
En fait, si ça ne tenait qu'à moi, j'enlèverais effectivement les accents et espaces. Cependant, le site sera mis à jour par une personne "non-informaticienne" et j'aurais voulu lui simplifier le boulot. Il reste encore la possibilité de modifier le nom du fichier lors de l'upload, mais j'avoue qu'une fonction qui puisse encoder les caractères spéciaux m'aurait bien aidé.

En tout cas, merci de ton aide.
palmier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 08h54   #4
Fabouney
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Salut,

comme tu l'a dit, le meilleur moyen et de faire une fonction qui retire tout les espace et remplace par "_" admettons, ce sera mieux pour tout le monde.

Coridalement.
  Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 09h14   #5
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web indépendant

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
salut,

Une petite solution pour toi, mais c'est pas dit que ce soit la meilleurs :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
function modif_name($nom_fichier){
 
	return strtr($nom_fichier, array(' '=>'_','é'=>'e','è'=>'e','à'=>'a','\''=>'','\"'=>''));
 
}
 
 
	//on vérifies que le champ est bien rempli:
	if(!empty($_FILES["fichier_choisi"]["name"]))
	{
		//nom du fichier choisi:
		$nomFichier    = modif_name($_FILES["fichier_choisi"]["name"]);
		//nom temporaire sur le serveur:
		$nomTemporaire = $_FILES["fichier_choisi"]["tmp_name"] ;
		//type du fichier choisi:
		$typeFichier   = $_FILES["fichier_choisi"]["type"] ;
		//poids en octets du fichier choisit:
		$poidsFichier  = $_FILES["fichier_choisi"]["size"] ;
		//code de l'erreur si jamais il y en a une:
		$codeErreur    = $_FILES["fichier_choisi"]["error"] ;
 
		//chemin qui mène au dossier qui va contenir les fichiers uplaod:
		$chemin = "upload_fichier/" ;
 
		if(copy($nomTemporaire, $chemin.$nomFichier))
			echo("<br>l'upload a réussi") ;
		else
			echo("<br>l'upload a échoué") ;
	}//fin if
	else
	{
		echo("Vous n'avez pas choisit de fichier!!<br>") ;
		echo("<a href=\"FTP.php\">Retour</a>") ;
	}//fin else
}
Voilà, si tu veux que je te l'explique n'hésite pas

++
__________________
LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 09h38   #6
Fabouney
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Voilà aussi 2 petites fonctions que j'ai faites qui sont nickel :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function CalculateURLFromString($basetxt)
{
	$basetxt=unaccent($basetxt);
	$basetxt=strtolower($basetxt);
	$basetxt=strtr($basetxt, ' ?+!,/\.()"%'."'", '-------------');
	while(strpos($basetxt,'--')!==false)
		$basetxt=str_replace('--','-',$basetxt);
	while(substr($basetxt, -1)=='-')
		$basetxt=substr($basetxt, 0, -1);
	while(substr($basetxt, 0, 1)=='-')
		$basetxt=substr($basetxt, 1);
	return $basetxt;    
}
 
function unaccent($string)
{
	return strtr(  strtr($string,
	'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöøùúûüýÿ',
	'AAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy'),
	array('Þ' => 'TH', 'þ' => 'th', 'Ð' => 'DH', 'ð' => 'dh', 'ß' => 'ss',
	'Œ' => 'OE', 'œ' => 'oe', 'Æ' => 'AE', 'æ' => 'ae', 'µ' => 'u', 
	'&' => 'and'));
}
Cordialement.
  Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 10h28   #7
Invité de passage
 
Inscription : avril 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 17
Points : 4
Points : 4
Très bien, je vais essayer tout ça. Je vous remercie, et je vous tiendrais au courant.
palmier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2007, 10h01   #8
Invité de passage
 
Inscription : avril 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 17
Points : 4
Points : 4
Fabouney,

Je me suis servi de ta fonction qui marche très bien. Cependant, j'ai vu qu'elle remplaçait aussi les points par un trait d'union. J'ai donc pris la liberté de faire une modification, car sinon je me retrouvais avec un nom de fichier sans extension.

Encore merci,

Cordialement.
palmier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h10.


 
 
 
 
Partenaires

Hébergement Web