Renommer des fichiers en arabe avec php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Renommer des fichiers en arabe avec php

Re: Renommer des fichiers en arabe avec php

par kmila » 16 nov. 2016, 00:41

Merci @rthur pour ta réponse.
J'ai la langue arabe installée sur mon Windows et j'arrive à mettre des noms de fichiers en arabe, manuellement. Sinon, ce que j'ai compris de la docs php est que la fonction mb_list_encodings() liste les encodage du serveur Apache peu importe l'OS où il est installé, qqn svp peut confirmer ?

Re: Renommer des fichiers en arabe avec php

par @rthur » 15 nov. 2016, 23:10

Et sur ton serveur Windows, la langue arabe est bien installée ?
De mémoire c'est dans le panneau de config > Langues

Car si le windows de ton serveur n'a pas le jeu de caractères Windows-1256, ça ne peut pas fonctionner et mb_list_encodings() renvoie ce qui est installé sur ton système à ma connaissance

Renommer des fichiers en arabe avec php

par kmila » 15 nov. 2016, 21:30

Bonjour tout le monde,

J'ai une liste de fichiers pdf nommés de 1.pdf à 1000.pdf, et j'ai des fichiers html (1.html à 1000.html) qui contiennent les noms correspondant.
J'ai utilisé le code suivant pour extraire les titres:

Code : Tout sélectionner

//Extraction du texte à partir d'un fichier HTML et renommer un fichier dans un répertoire $num_fichier = 10; for ($j=1;$j<=$num_fichier;$j++){ $ligne=32; $titre=''; $fichier='../ressources/'.$j.'.html'; $fp=fopen($fichier,'r'); if ($fp){ for ($i=1;$i<=$ligne;$i++) { $Temporaire = fgets($fp); if (empty($Temporaire)){ break; }else { $Contenu = $Temporaire; } } } fclose($fp); $titre = $Contenu; //Test d'affichage du titre sur le navigateur //echo $titre; rename('../ressources/'.$j.'.pdf', '../ressources/'.$titre.'.pdf'); }


Le code fonctionne bien. Lorsque j'affiche les titres sur mon navigateur ils s'affiche en Arabe, mais lorsque je les utilisent pour renommer les fichiers pdf ils s'affiche sur Windows bizarrement.



L'encodage de mon serveur Apach : ISO-8859-1
Mon IDE est en UTF-8
J'ai utilisé les fonction mb_detect_encoding($titre) et iconv("UTF-8", "Windows-1256//IGNORE (ou TRANSLIT)", $titre)
Cependant, je soupçonne le output de mon serveur Apach que je n'arrive pas à changer en windows-1256 ou cp1256
car la fonction mb_internal_encoding() ne les prends pas comme paramètre (cf mb_list_encodings())
Y at-il qqn qui peut m'aider à résoudre ce problème avp?