ciao
è possbile lanciare un eseguibile tramite l apertura di una pagina in PHP
ciao
è possbile lanciare un eseguibile tramite l apertura di una pagina in PHP
Lo puoi fare con il comando exec
non mi funziona![]()
praticamente ho inserito l eseguile sotto httpdocs,dove ho tutti i file tra cui index.php che è la pagina che dovrebbe lanciare l eseguibile..
index.php
exec("prova.exe");
help
Non so cosa fa il tuo eseguibile ma se leggi attentamente il manuale c'è scritto:
"exec() esegue il comando passato da command, la funzione non invia nessun output".
la questione è che l'esecuzione degli eseguibili deve essere attivata nel server, non ricordo se sul httpd.conf di apache o nel php.ini del php.
prova così
dove $command è il tuo eseguibileCodice PHP:
$descriptorspec = array(
0 => array("pipe", "r" ), // stdin
1 => array("pipe", "w" ), // stdout
2 => array("pipe", "w" ) // stderr
);
$cwd = getcwd();
$process = proc_open($command, $descriptorspec, $pipes,$cwd);
if (is_resource($process))
{
$stream=stream_get_contents($pipes[2]);
fclose($pipes[0]);
fclose($pipes[1]);
fclose($pipes[2]);
$return_value = proc_close($process);
}
----
in $return_value dovresti avere l'esito dell'operazione
in $stream la stringa di output del comando
ho provato a fare come hai detto ma non esce nulla..
non è che va settato qlcosa nel server o in php ??
$descriptorspec = array(
0 => array("pipe", "r" ), // stdin
1 => array("pipe", "w" ), // stdout
2 => array("pipe", "w" ) // stderr
);
$command = "prova.exe";
$cwd = getcwd();
$process = proc_open($command, $descriptorspec, $pipes,$cwd);
if (is_resource($process))
{
$stream=stream_get_contents($pipes[2]);
fclose($pipes[0]);
fclose($pipes[1]);
fclose($pipes[2]);
$return_value = proc_close($process);
}
innanzitutto l'eseguibile funziona da solo? isolato come dici te nella cartella httpdocs?
seconda cosa
il comando deve avere path assoluto, almeno io lo uso così
controlla che faccia qualcosa, io l'ho testato, mi funziona.
ho provato a fare come hai detto ma non esce nulla..
non è che va settato qlcosa nel server o in php ??
$descriptorspec = array(
0 => array("pipe", "r" ), // stdin
1 => array("pipe", "w" ), // stdout
2 => array("pipe", "w" ) // stderr
);
$command = "prova.exe";
$cwd = getcwd();
$process = proc_open($command, $descriptorspec, $pipes,$cwd);
if (is_resource($process))
{
$stream=stream_get_contents($pipes[2]);
fclose($pipes[0]);
fclose($pipes[1]);
fclose($pipes[2]);
$return_value = proc_close($process);
}
ops cannato l ultimo messaggio..
cmq ora provo