Sto scrivendo una semplice applicazione che utilizza le informazioni da un modulo, passa attraverso $ _POST a uno script PHP che esegue uno script python ed emette i risultati. Il problema che sto avendo è che il mio script python non è effettivamente in esecuzione con gli argomenti vengono passati nel file diEsecuzione di script Python con variabili PHP
process3.php:.
<?php
$start_word = $_POST['start'];
$end_word = $_POST['end'];
echo "Start word: ". $start_word . "<br />";
echo "End word: ". $end_word . "<br />";
echo "Results from wordgame.py...";
echo "</br>";
$output = passthru('python wordgame2.py $start_word $end_word');
echo $output;
?>
uscita:
Start word: dog
End word: cat
Results from wordgame.py...
Number of arguments: 1 arguments. Argument List: ['wordgame2.py']
Nella parte superiore del il mio wordgame2.py, ho il seguente (per scopi di debug):
#!/usr/bin/env python
import sys
print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)
Perché non è l'insensibile er di argomenti passati = 3? (Sì, il mio modulo invia correttamente i dati.)
Qualsiasi aiuto è molto apprezzato!
Edit: mi permetto di aggiungere che viene eseguito quando ho esplicitamente detto che la parola inizio e la fine ... qualcosa di simile:
$output = passthru('python wordgame2.py cat dog');
echo $output
Cosa vedi quando "echo" python wordgame2.py $ start_word $ end_word "nel tuo file php? – GWW
Dopo aver aggiunto quella linea, ora uscite: Inizio parola: cane canale di fine: gatto I risultati di wordgame.py ... pitone cane wordgame2.py gatto numero di argomenti: 1 argomenti. Elenco argomenti: ['wordgame2.py'] – Micah
Penso che l'errore si trovi in '$ output = passthru ('python wordgame2.py $ start_word $ end_word');' Prova questo '$ output = passthru ('python wordgame2.py' . $ start_word. "".$ end_word); 'Forse, python sta rifiutando gli argomenti dovuti alla parola chiave $ (o forse $ sta invocando la shell per il riposizionamento variabile) –