Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : longueur d'une chaine, en byte... [ Divers / Général ] (pysco68)

dimanche 20 juillet 2008 à 12:49:13 | longueur d'une chaine, en byte...

pysco68

bonjour les gens!!

bon je me bats avec une petite fonction qui me génère un fichier  CSV (valeurs séparées par virgule...) jusque là tout va bien
le tout marche très bien, mais je dois forcer le téléchargement du fichier... et là un petit problème qui se pose dans la spécification HTTP/1.1, c'est qu'il faut que j'indique la longueur en byte du fichier, qui n'en est pas encore une.... et là mon problème:

comment trouver la longueur de cette chaine
, sans devoir écrire le fichier sur le disque (ce que je veux éviter...) pour faire une sortie directe, en forçant le téléchargement...

le problème c'est que je n'ai pas que forcément des caractères ASCII dans les fichiers.... et que donc j'ai une jeu de caractère multibyte....

qu'en pensez vous?

Merci pour toutes piste qui pourrait me débloquer....

Sur ce bon midi


Developpement Web Yannic GraphiX | Mon CMS yArt et sa démo


dimanche 20 juillet 2008 à 13:50:54 | Re : longueur d'une chaine, en byte...

pysco68

Réponse acceptée !
J'ai fini par trouver....

solution: convertir la chaine en UTF-8, et utiliser mb_strlen() pour compte la longueur en le forçant sur "latin1" comme jeu de caractère....

bref, pour ceux à qui ça pourrait servir:

$out_utf8 = utf8_encode($out);                            // Transforme en UTF-8
header("Content-disposition: attachment; filename=nom_du_fichier.txt");
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: text/plain\n"); // Surtout ne pas enlever le \n
header("Content-Length: ".mb_strlen($out_utf8, 'latin1'));
header("Pragma: no-cache");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
header("Expires: 0");
echo $out_utf8;

ça à l'air de marcher en tout cas ;)

allé!! bonne journée!



Developpement Web Yannic GraphiX | Mon CMS yArt et sa démo


dimanche 20 juillet 2008 à 20:14:43 | Re : longueur d'une chaine, en byte...

Evangun

Hello !

Ben tu m'as mis le doute, mais non, strlen( ) fait simplement l'affaire, pas besoin de ces conversions il me semble !

mon fichier php étant en utf8, echo strlen('é@üñ'); me donne bien 7.

à+



Cette discussion est classé dans : fichier, problème, chaine, byte, longueur


Répondre à ce message

Sujets en rapport avec ce message

problème fichier, chaine de caractère [ par lenneth666 ] Bonjouralors je suis ultra débutant en php.J'aimerais ouvrir un fichier .html pour recuperer quelques partie du code source entre certaines balises.L' Problème avec les chaines de caractères [ par nisaloncaje ] bonjour à tous :j'ai le problème suivant en php :j'ai une chaine de caractères $str. Cette chaine peut contenir deux sous chaines : $ss_str et $ss_str Fichier texte [ par rochametallica ] Salut tout le monde, je voudrais avoir votre aide pour résoudre un problème, alors je voudrais un code en PHP qui me lis des valeurs d'un fichier text Problème commande passthru (urgent svp) [ par demonn ] Bonjour a tous,voilà j'ai toujours un problème pour installer les script de paiement sur mon site.Mais j'ai ciblé le problèmele script doit exécuté un Remplacer   [ par pcgpegase ] Bonjour,Je vous expose mon problème :J'ai un champs de type TEXT dans ma base MySQL qui contient donc du texte !Quand je fais afficher ce texte, c'est afficher image de type blob [ par garpa ] Bonjour à tous,Voilà mon problème, je stock mes images sous un type blob dans ma base. Or, j'ai des problème pour lire ces image dans mon script php. Problème pour vider un fichier ( .txt ) automatiquement à une heure précise [ par shadow125 ] Bonjour,J'ai mis sur mon site un service de chat qui stocke l historique des conv ( un peu comme msn ) sur le serveur. Hors, si vous avez 15 personnes Problème avec include [ par 3xodius55 ] Bonjour, en faisant un include('mon_fichier.inc'), tout le contenu du fichier mon_fichier.inc s'affiche mais en tant que texte. Comment cela est-il po Explode et antislashes ... [ par Poolky ] Bonsoir tout le monde,J'ai un petit soucis, et j'aimerais si c'était possible que vous m'otiez cette épine du pied!Je voudrais faire un explode d'une ajouter une chaine à une variable (lié à un fichier) avant l'extension [ par lanomalie ] bonjour, je connais pas grand chose au php mais voila ma question:     code:     $dossier = opendir("dossi


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,140 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.