Problème des fonctions : mb_convert_encoding(), …

Problème des fonctions : mb_convert_encoding(), … - PHP - Programmation

Marsh Posté le 07-04-2009 à 10:35:43    

Bonjour à tous,
 
 
Dans un site que j'ai réalisé en PHP, j'ai mis en place une fonction qui permet de renommer les fichiers ayant des noms un peu exotiques. Là voici :

Code :
  1. function to7bit($text,$from_enc) {
  2. $text = mb_convert_encoding($text,'HTML-ENTITIES',$from_enc);
  3. //On vire les accents
  4. $text = preg_replace( array('/ß/','/&(..)lig;/', '/&([aouAOU])uml;/','/&(.)[^;]*;/'),
  5.       array('ss',"$1","$1".'e',"$1" ), 
  6.       $text);
  7. //on vire tout ce qui n'est pas alphanumérique
  8. $out_text = eregi_replace("[^a-z0-9\.]",'',$text);
  9. //on renvoie la chaîne transformée
  10. return $out_text;
  11. }


 
Cette fonction marchait à merveille lorsque j'étais en phase de test en local avec Easy PHP.
 
Une fois le site balancé sur son espace Web définitif, la fonction n'a plus l'air de s'exécuter correctement et les erreurs suivantes s'affichent :
 
Warning: Missing argument 2 for to7bit() in /homez.65/centrefr/www/90anslamontagne/exemples/etape-1.php on line 7
 
Warning: mb_convert_encoding() [function.mb-convert-encoding]: Illegal character encoding specified in /homez.65/centrefr/www/90anslamontagne/exemples/etape-1.php on line 9
 
Warning: Missing argument 2 for to7bit() in /homez.65/centrefr/www/90anslamontagne/exemples/etape-1.php on line 7
 
Warning: mb_convert_encoding() [function.mb-convert-encoding]: Illegal character encoding specified in /homez.65/centrefr/www/90anslamontagne/exemples/etape-1.php on line 9
 
Warning: Missing argument 2 for to7bit() in /homez.65/centrefr/www/90anslamontagne/exemples/etape-1.php on line 7
 
Warning: mb_convert_encoding() [function.mb-convert-encoding]: Illegal character encoding specified in /homez.65/centrefr/www/90anslamontagne/exemples/etape-1.php on line 9
 
Warning: Cannot modify header information - headers already sent by (output started at /homez.65/centrefr/www/90anslamontagne/exemples/etape-1.php:7) in /homez.65/centrefr/www/90anslamontagne/exemples/etape-1.php on line 138

 
 
Je vois pas d'où ça peut venir. Ai-je oublié de déclarer quelque chose ? [:transparency]  
 
 
Par avance, merci pour votre éventuelle aide. :jap:

Message cité 1 fois
Message édité par zoukoufxxx le 07-04-2009 à 10:36:45

---------------
Le site des BD d'HFR | Aurélien Amacker : Arnaque ? - Mongolien du Web
Reply

Marsh Posté le 07-04-2009 à 10:35:43   

Reply

Marsh Posté le 07-04-2009 à 10:47:38    

bah t'appelles ta fonction to7bit() sans lui fournir le second argument donc PHP gueule.
Ta définition de fonction est correcte, c'est l'appel qui merde.

Reply

Marsh Posté le 07-04-2009 à 12:17:15    

Ah OK, merci pour ces éclaircissements ! :jap:  
 
Je ne sais quoi donner comme second argument. Voici un appel de la fonction :
 
-----
 
$nom_du_fichier = $nombre_aleatoire.to7bit($_FILES['image-principale']['name']);
 
-----

Message cité 1 fois
Message édité par zoukoufxxx le 07-04-2009 à 12:17:42

---------------
Le site des BD d'HFR | Aurélien Amacker : Arnaque ? - Mongolien du Web
Reply

Marsh Posté le 07-04-2009 à 12:44:10    

zoukoufxxx a écrit :

j'ai mis en place une fonction qui permet de renommer les fichiers ayant des noms un peu exotiques. Là voici :
[code]  function to7bit($text,$from_enc)

zoukoufxxx a écrit :

Je ne sais quoi donner comme second argument.


 :ouch:  
 
Tu "mets en place" (ça veut dire quoi, au fait, tu pompes sur le net ou tu développes ?) une fonction, et tu n'es même pas capable de trouver les arguments qu'elle va demander  :pt1cable:  
 
Si tu lis ta fonction to7bit, tu vois que le deuxième argument qu'elle récupère sert comme deuxième argument de mb_convert_encoding.
Après...
[:sh@rdar]

Reply

Marsh Posté le 07-04-2009 à 12:57:39    

je plussoie et...
$from_enc => çà a l'air d'être l'encodage d'origine.
Et puis bon, tu utilises à la fois des regex PCRE et POSIX... Ça sent le truc pompé...

Reply

Marsh Posté le 07-04-2009 à 15:22:40    

Pis c'est pas comme si les messages d'erreur n'étaient pas clair !
Il faut lire les messages d'erreurs !


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 07-04-2009 à 17:10:33    

C'est impressionnant cette section d'HFR. Tu demandes de l'aide, des éclaircissements, et tu te fais limite insulter, mais bon.

 
macgawel a écrit :


 :ouch:

 

Tu "mets en place" (ça veut dire quoi, au fait, tu pompes sur le net ou tu développes ?) une fonction, et tu n'es même pas capable de trouver les arguments qu'elle va demander  :pt1cable:


Quand je dis, je mets en place, ça ne veut pas dire que je l'ai développer, hein.
J'ai effectivement pris une source mis à disposition par un Internaute sur son blog.

 

Donc il faudrait que je mette :
$nom_du_fichier = $nombre_aleatoire.to7bit($_FILES['image-principale']['name'], UFT8 ou ASCII ou ....);

 

C'est ça ? :jap:


Message édité par zoukoufxxx le 07-04-2009 à 17:11:42

---------------
Le site des BD d'HFR | Aurélien Amacker : Arnaque ? - Mongolien du Web
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed