Come faccio a passare le variabili da una pagina PHP alla riga di comando
-
28-10-2019 - |
Domanda
Attualmente sto usando i seguenti due comandi per generare istruzioni client popolate dalle tabelle MySQL. Esistono tre variabili, client_id, date_start. Date_end
wget -O mypage.html "http://mypage.php?client_id=var1&date_start=var2&date_end=var3"
wkhtmltopdf-i386 --margin-left 5mm --margin-right 5mm mypage.html mypage.pdf
Funziona perfettamente e produce dichiarazioni utilizzabili. Quello che ora vorrei fare è implementare una pagina Web utilizzando tre menu a discesa per selezionare ogni variabile anziché digitarla direttamente nella riga di comando Linux. L'utente selezionerebbe il client, la data di inizio e la data della data, utilizzando l'interfaccia Web, quindi fare clic su "Stampa report". Ciò invierebbe le variabili alla riga di comando ed eseguirebbe le due righe visualizzate sopra.
So come creare forme ma non riesco a capire come passare le variabili alla riga di comando ed eseguire queste 2 righe. Sono sicuro che è semplice se qualcuno può aiutare?
Grazie molto
Soluzione
//assumes, you have extracted $clientid, $startdate, $enddate from your $_REQUEST and validated them
$command="wget -O mypage.html \"http://mypage.php?client_id=$clientid&date_start=$startdate2&date_end=$enddate\"";
exec($command, $output, $status);
if ($status!=0) die("wget failed");
$command="htmltopdf-i386 --margin-left 5mm --margin-right 5mm mypage.html mypage";
exec($command, $output, $status);
if ($status!=0) die("htmltopdf failed");
Insidie: dovresti usare /path/to/wget
e /path/to/htmltopdf-i386
Per essere sicuro, il tuo percorso è ok
Altri suggerimenti
http://php.net/manual/en/function.system.php è la risposta alle tue esigenze :)
Ottiene anche l'output per te (in caso di messaggi di errore ecc., Molto utile)
Per eseguire più comandi usa && eg: system ("ls && exit");
Ho lo stesso problema, quando provo a eseguirlo dalla riga di comando funziona come un fascino, ma, se provo a eseguirlo tramite browser non funziona.
Ho persino testato con la riga di comando lo stesso pezzo di codice in un file test.php. Nella riga di comando genera il file PDF ma nel browser non lo fa.
Hai assegnato la tua domanda come risposta. Non riesco a vedere dov'è la risposta giusta ...
Forse hai lo stesso problema risolto in questa domanda Exec () Problema con il comando lungo in PHP
Guarda Modifica 3