OVH Cloud OVH Cloud

STDIN et CRLF selon OS

11 réponses
Avatar
Asterbing
Bonjour. Dans le cadre de l'extraction des données utiles venant d'un
formulaire multiparties envoyé par méthode POST, je commence ansi :

binmode STDIN; # pour windows
read(STDIN, $buff, $ENV{'CONTENT_LENGTH'});

Puis, je split sur le boundary trouvé dans $ENV{CONTENT_TYPE}
et enfin analyse ligne à ligne chaque partie (sans détailler ici car ce
n'est pas l'objet de ma question).

Sachant que CRLF est \015\012 sous Windows, \012 sous Unix et \015 sous
MacOS (dixit "44.2.1 Les retours chariots" de la doc Perl en français
venant de <http://www.enstimac.fr/Perl/>, version du 10 avril 2005)

Dois-je extraire mes lignes via un "split(/$crlf/, $block)" avec $crlf
adapté selon l'OS ?

Cette question parce que j'ai vu plusieurs exemples (chacuns avec sa
manière) concernant l'analyse de STDIN ne reconnaissant la fin de ligne
qu'avec "\r\n" et sans passer en binmode (je suppose donc en ignorant le
cas Windows).

1 réponse

1 2
Avatar
Asterbing
In article ,
says...

À (at) Wed, 19 Apr 2006 17:09:41 +0200,
Paul Gaborit écrivait (wrote):
Donc même en CGI la variable CONTENT_TYPE peut ne pas être
renseignée...


Lire CONTENT_LENGTH à la place de CONTENT_TYPE !




Oui oui j'avais compris


1 2