Php fonction exec ne se termine plus

matdev Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -  
matdev Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'ai développé un petit script php pour un intranet qui me génère un fichier que je transfert vers un port série pour être imprimé par une étiquetteuse.
Pour effectuer se transfert, je passe par une commande dos que j'éxecute avec la fonction php exec().
Le problème est le suivant, mon script se lance, le fichier est bien généré, l'exec dos envoie bien mon document vers mon port et donc il est bien imprimé MAIS l'exec ne se termine pas est dur indéfinimant .... si je ferme la fenetre le reste de l'application est tout de même plantée et je ne peu rien faire sans l'arreter et la redémarrer.

Voici le code que j'utilise :
<?php
//ouverture du port associé à la borne
$bornes=new Bornes();
$borne=$bornes->fetchRow('nom="'.gethostbyaddr($_SERVER['REMOTE_ADDR']).'" and ip="'.$_SERVER['REMOTE_ADDR'].'"');


$fichier=str_pad($this->client->id,"0", STR_PAD_LEFT).str_pad($borne->id,"0", STR_PAD_LEFT).date('YmdHis').".txt";
$fictxt=fopen("D:/www/borneedition/public/tmp_txt/".$fichier,"w+");

$str="";
foreach($this->client->getBonsAImprimer2($this->date) as $bon){
	if($ancienticket!=$bon->ticket_id){
		$ancienticket=$bon->ticket_id;
		
             /********recup des info pour le bon dans $str*********/

}


fputs($fictxt,$str);
fclose($fictxt);

$cmd="COPY D:\\www\\borneedition\\public\\tmp_txt\\".$fichier." \\\\.\\".$borne->COM_zebra;

exec($cmd,$outputexec);

unlink("D:\\www\\borneedition\\public\\tmp_txt\\".$fichier);
?>


Comment faire pour que la fonction exec() se termine enfin ????
A voir également:

2 réponses

Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
C est peut etre qu il manque un accusé de reception de l'etiqueteuse...
L'operateur dos copy n est pas adapté.
Peut etre que un genre de Send ou une commande qui n'a pas de retour fonctionnerai...
Sinon en lancant le processus puis avec sleep(30); et un "kill process " ???
0
matdev Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   5
 
Le soucis c'est que je ne trouve pas d'autre commande pour faire cela.

après mon script php est bloqué sur la commande exec et je ne peux donc pas passer à autre chose et donc tu le processus par une autre commande.
0