IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

renommer une fonction comportant le caractère spécial œ


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 378
    Points : 5 731
    Points
    5 731
    Billets dans le blog
    1
    Par défaut renommer une fonction comportant le caractère spécial œ
    Bonjour,

    je voudrais renommer une fonction dont le nom comporte le caractère spécial œ. Après upload de la fonction, dans le FTP, ce caractère est nommé Å“. J'ai donc mis dans mon code les deux lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $file=str_replace("œ","oe",$file);
    $file=str_replace("Å“","oe",$file);
    et pour accéder au fichier ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       while ((false !== ($file = readdir($handle)))) {
            if ($file != "." && $file != "..") {
    	$f=explode(".",$file);
    	if (sizeof($f)>0) $file=$f[0].".".$f[1];
    	if (sizeof($f)>2) $file.=".".$f[2].".".$f[3];
    	...
    Ne me demandez pas l'explication des 3 lignes de la fin ; j'ai remarqué que si je ne les mets pas, je n'accède pas aux fichiers, mais je ne saurais expliquer, et de toute façon, si je les commente, c'est pareil (Ca ne marche pas). Donc, comment faire ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu veux renommer un fichier plutot non ?

    Il faut utiliser la fonction rename()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 378
    Points : 5 731
    Points
    5 731
    Billets dans le blog
    1
    Par défaut
    Oui, je me suis trompé dans mon post ; mais j'utilise déjà rename ; voilà le code complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
       while ((false !== ($file = readdir($handle)))) {
            if ($file != "." && $file != "..") {
    			$f=explode(".",$file);
    			if (sizeof($f)>0) $file=$f[0].".".$f[1];
    			if (sizeof($f)>2) $file.=".".$f[2].".".$f[3];
    			$memofile=$file;
     
    			// === on supprime les accents et les espaces du nom de l'image 
    			$file = strtr($file,  "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",   
    			"aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");  
    // === on supprime les espaces
    			$file=str_replace(" ","_",$file); 
     
    //  === OE
    			$file=str_replace("Œ","OE",$file);
    			$file=str_replace("œ","oe",$file);
    			$file=str_replace("Å“","oe",$file);
    			$file=str_replace("a“","oe",$file);
     
    			rename($memofile,$file);
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton script fonctionne tel quel.
    Si tes fichiers ne sont pas dans le repertoire du script, il faut penser a indiquer le chemin dans ta fonction rename().
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 378
    Points : 5 731
    Points
    5 731
    Billets dans le blog
    1
    Par défaut
    Ca ne marche pas, même en mettant le chemin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    if ($handle = opendir('../../upload1/image')) {
       while ((false !== ($file = readdir($handle)))) {
            if ($file != "." && $file != "..") {
    			$f=explode(".",$file);
    			if (sizeof($f)>0) $file=$f[0].".".$f[1];
    			if (sizeof($f)>2) $file.=".".$f[2].".".$f[3];
    			$memofile=$file;
     
    			// === on supprime les accents et les espaces du nom de l'image 
    			$file = strtr($file,  "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",   
    			"aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");  
    // === on supprime les espaces
    			$file=str_replace(" ","_",$file); 
     
    //  === OE
    			$file=str_replace("Œ","OE",$file);
    			$file=str_replace("œ","oe",$file);
    			$file=str_replace("Å“","oe",$file);
    			$file=str_replace("a“","oe",$file);
     
    			rename('http://www.kitskats.com/upload1/image/'.$memofile,'http://www.kitskats.com/upload1/image/'.$file);
    ...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  6. #6
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $path=dirname(__FILE__).'/../../upload1/image/';
    rename($path.$memofile,$path.$file);
    ?

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 378
    Points : 5 731
    Points
    5 731
    Billets dans le blog
    1
    Par défaut
    Même avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    if ($handle = opendir('../../upload1/image')) {
       while ((false !== ($file = readdir($handle)))) {
            if ($file != "." && $file != "..") {
    			$f=explode(".",$file);
    			if (sizeof($f)>0) $file=$f[0].".".$f[1];
    			if (sizeof($f)>2) $file.=".".$f[2].".".$f[3];
    			$memofile=$file;
     
    			// === on supprime les accents et les espaces du nom de l'image 
    			$file = strtr($file,  "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",   
    			"aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");  
    // === on supprime les espaces
    			$file=str_replace(" ","_",$file); 
     
    //  === OE
    			$file=str_replace("Œ","OE",$file);
    			$file=str_replace("œ","oe",$file);
    			$file=str_replace("Å“","oe",$file);
    			$file=str_replace("a“","oe",$file);
    			$path=dirname(__FILE__).'/../upload1/image/';
    			rename($path.$memofile,$path.$file);
    , ça ne renomme rien.

    PS : j'ai viré un /.. car j'en avais mis un de trop...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  8. #8
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Dans ton code, on voit que tu ne l'as pas viré là...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($handle = opendir('../upload1/image')) {

  9. #9
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 378
    Points : 5 731
    Points
    5 731
    Billets dans le blog
    1
    Par défaut
    Bien remarqué, mais même avec ça, ça ne va toujours pas...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  10. #10
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    C'est bizarre quand-même.

    Essaie comme ça pour voir...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    $path=dirname(__FILE__).'/../upload1/image/';
    if ($handle = opendir($path)) {
       while ((false !== ($file = readdir($handle)))) {
            if ($file != "." && $file != "..") {
    			$memofile=$file;
     
    			// === on supprime les accents et les espaces du nom de l'image 
    			$file = strtr($file,
    			"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",   
    			"aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");  
    // === on supprime les espaces
    			$file=str_replace(" ","_",$file); 
    //  === OE
    			$file=str_replace("Œ","OE",$file);
    			$file=str_replace("œ","oe",$file);
    			$file=str_replace("Å“","oe",$file);
    			$file=str_replace("a“","oe",$file);
     
    			rename($path.$memofile,$path.$file);

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu crées toi même un fichier avec un Å ca le renomme ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Serait-ce utile d'utiliser rawurldecode et/ou rawurlencode ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $file=rawurldecode($file);
    $memofile=$file;
    ...
    rename($path.$memofile,$path.rawurlencode($file));

  13. #13
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 378
    Points : 5 731
    Points
    5 731
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Si tu crées toi même un fichier avec un Å ca le renomme ?
    Non, ça ne renomme rien, et j'ai aussi essayé en vain rawurldecode/rawurlencode...Je n'y comprends rien.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton code tel quel tu l'as mis au début fonctionne pourtant donc soit tu l'utilises mal, soit ton problème est ailleurs.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 378
    Points : 5 731
    Points
    5 731
    Billets dans le blog
    1
    Par défaut
    Non, en fait, je m'étais trompé dans le chemin ; c'était bien /../../upload1/image/ J'ai corrigé, et...ça marche
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  16. #16
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 378
    Points : 5 731
    Points
    5 731
    Billets dans le blog
    1
    Par défaut
    Je viens de remarquer que rawurldecode et rawurlencode effectuaient parfois un renommage néfaste du fichier, mais même si on les enlève, ça marche quand même...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Renommer une fonction excel
    Par sarl-78 dans le forum Excel
    Réponses: 1
    Dernier message: 31/05/2012, 14h27
  2. Comment renommer une fonction
    Par chady dans le forum Débuter
    Réponses: 2
    Dernier message: 04/10/2011, 13h13
  3. MySQL : cherche une fonction chaine de caractères
    Par raton_laveur dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/08/2010, 17h47
  4. Renommer une fonction dans un select ou concevoir autrement une fonction
    Par tavarlindar dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 30/05/2008, 17h17
  5. Créer une fonction comportant un IF
    Par guidav dans le forum Outils
    Réponses: 2
    Dernier message: 12/03/2007, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo