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 : PHP : lire un fichier A et le recopier dans un fichier B avec proc_open() [ Divers / Divers ] (khitan72)

mercredi 3 septembre 2008 à 13:38:32 | PHP : lire un fichier A et le recopier dans un fichier B avec proc_open()

khitan72

bonjour ,
je cherche a comprendre le fonctionnement de la fonction proc_open() et de l'utilisation de pipe en r/w
pour essais,  je souhaites lire un fichier_A.txt pour le recopier dans un fichier_B.txt ( 3 lignes de characteres dedans)
avec le script suivant, je ne peux afficher le contenu des pipes ni ecrire dans les fichiers
comment ouvre t'on ce fichier_A. txt par cette commande ? proc_open($cmd, descript,$pipe)
quelle est la commande $cmd
a terme, j'aimerais pouvoir utiliser proc_open pour ouvrir un port com en R/W
merci d'avance pour l'aide
<?php

$descriptorspec = array(
   0 => array("pipe","r+"),  // stdin est un pipe où le processus va lire
   1 => array("pipe","w+"),  // stdout est un pipe où le processus va écrire
   2 => array("file","error_output.txt", "a+"), // stderr est un fichier
    );
   #  le fichier error output me repond que la commande fichier_A n'est pas une commande valide #
   
    #$process = proc_open(`fichier_A..txt,"r+`, $descriptorspec, $pipes);
       if (is_resource($process)) { 
    while(!feof($pipes[0])) {
    echo stream_get_contents($pipes[0]);
    $buff = fread($pipes[0], 128);
    echo $buff;
    $s=fgets($pipes[0]);
        echo "\n test1 " . $s;
    }
    fclose($pipes[0]);
    sleep(2);
    echo "ok";
   
   
    fwrite($pipes[1], "j'ai ecrit cela");
    echo "pipe 11 = $a\n";
    fclose($pipes[1]);
    sleep(2);
    echo "closed\n";   
}

mercredi 3 septembre 2008 à 14:19:01 | Re : PHP : lire un fichier A et le recopier dans un fichier B avec proc_open()

yoman64

Membre Club
Salut,

Oula, je crois que tu n'as pas trop compris ce que faisait la fonction proc_open C'est pour exécuter un exécutable et ouvrir des descripteurs pour le contrôler,  pas un fichier texte. De toute façon ta ligne ne fait aucun sens.
$process = proc_open(`fichier_A..txt,"r+`, $descriptorspec, $pipes);
Pourquoi il y a des backtick ? et puis un fichier_A..txt n'est pas un nom valide pour un fichier de toute façon, peut pas y avoir .. de suite.

Je te suggère de lire ceci: [ Lien ]

Au moins la courte description:

proc_open - Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties


Si tu veux ouvrir un fichier c'est avec fopen qu'il faut voir.
-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  

mercredi 3 septembre 2008 à 14:47:46 | Re : PHP : lire un fichier A et le recopier dans un fichier B avec proc_open()

khitan72

merci
en fait fopen marche pour ouvrir un fichier texte, mais mon but est de comuniquer avec un GSM par AT cde
et je n'arrive pas a ouvrir le port com pour ecrire et lire les données (envoie ATZ + CRLF  reception OK+CRLF)
j'ai trouvé ce le bout de code ci dessus, et j'essayais de le comprendre , en imaginant que les caracteres d'un fichier
peuvent etre lu comme sur un port com .

y'a du mélange chez moi , je crois

cdlt

mercredi 3 septembre 2008 à 22:03:25 | Re : PHP : lire un fichier A et le recopier dans un fichier B avec proc_open()

yoman64

Membre Club
Hello,
Ah si c'est pour controller un port COM il va te falloir utiliser un programme externe ou bien une extension PHP.
L'extension qui pourrait t'aider est Direct IO.
Tu trouveras plus d'informations à cette adresse: http://ca.php.net/manual/en/intro.dio.php

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  

jeudi 4 septembre 2008 à 04:37:39 | Re : PHP : lire un fichier A et le recopier dans un fichier B avec proc_open()

yoman64

Membre Club
Salut,

J'y ai repensé et il me semble que fopen suffit pour contrôler un port com, je viens de faire quelques tests et ça semble fonctionner, suffit de l'ouvrir en mode w+

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  

jeudi 4 septembre 2008 à 14:20:04 | Re : PHP : lire un fichier A et le recopier dans un fichier B avec proc_open()

khitan72

bonjour,
je ne peux pas ouvrir mon COM3 avec fopen 
ou sinon la fonction fread met trop de temps à attendre mon caracteres de reponse .
 et pour j'ai une erreur fatale si je prend la fonciton dio_open
malgre une mise à jour de php ini et verifié que la dll est presente dans les extensions sous php/ext
je vais chercher encore. y'a pas de raison que si j'arrive a communiquer avec un port com sous excel/ VBA je ne puisse pas y arriver avec du php.
cdlt
voila ce que j'ai avec fopen,

'mode com3: BAUD=115200 PARITY=N data=8 stop=1 xon=off';
<?php
 $fp = fopen ('COM3', "w+");
 if (!$fp) {
        echo "Port not opened.";
   
    } else {
    $envoi= "ATZ".chr(13).chr(10) ;
    fwrite($fp, $envoi);
   
    #$received= fread($fp,10);
    print "recu =  $received";
   
    fclose($fp);
    echo"closed";
    }
   ?>







Cette discussion est classé dans : fichier, open, pipe, proc, pipes


Répondre à ce message

Sujets en rapport avec ce message

com avec open office [ par pascal131966 ] bonjour j'aimerai ouvrir un fichier open office a partir d'un fichier php comme on peut le faire avec word $word = new COM("word.application") je Open Office [ par Celine54520 ] Bonjour à tous voila mon problème j'ai un fichier xls avec Open Office et j'aimerai suivant   une cellule ayant des Url créer un fichier avec le co erreur a l aide [ par mike501 ] bonjour je viens de telecharger un code mais le souci quand je le mais sur mon site c est que l image ne veut pas s afficherregarder en page de cet pa Can't open /tmp/fichier.xls4Z55NA. It may be in use or protected [ par hichamalcolmx ] Fatal error: Can't open /tmp/fichier.xls4Z55NA. It may be in use or protected in /var/www/vhosts/domain.com/httpdocs/Projet/class/class.writeexcel_ole erreur sur code [ par mike501 ] bonjour, je vien de telecharger un script pour pouvoir mettre sur mon site un image differente chaque jour mais le souci c est que j ai des erreur sur probleme avec code [ par mike501 ] bonjour, je vien de telecharger un script pour pouvoir mettre sur mon site un image differente chaque jour mais le souci c est que j ai des erreur sur Verifier la taille d'un fichier et l'extension (javasript) [ par airben ] Bonjour j'ai un formulaire qui me permet de joindre des fichiers . Comment verifier la taille du fichier ainsi que son extension avant l'envoi du fo Pb de guillemets en cascade... [ par cyberappz ] Bonjour, j'ai un problème qui me fait tourner en rond depuis plusieurs jours. J'ai un fichier qui écrit des instructions "str_replace" dans un autre Afficher l'extansionde la pièce jointe , au lieu d'un fichier .tmp [ par azerto00 ] bonjours, j'ai adopté un code .php quipermet d'ajouter une pièce jointe par mail , mais le problème est que le fichier recu porte l'extension .php et Traitement php sur un portion de fichier xml !!!! [ par charloteuf ] Hello,J'ai bien lu les sujets précédents, mais je me demande si le parsing xml est possible pour ma méthode.En fait j'ai un fchier xml de 15000 ligne,


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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,452 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é.