Bir formdaki bilgileri kullanan basit bir uygulama yazıyorum, bir python betiği yürüten ve sonuçları veren bir PHP betiğine $ _POST üzerinden aktarır. Ben yaşıyorum sorun benim python komut dosyası aslında argümanlar içinde geçirilen ile çalışmıyor olmasıdırPHP Değişkenleri ile Python Komut Dosyası Yürütme
process3.php dosyası:.
<?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;
?>
Çıktı:
Start word: dog
End word: cat
Results from wordgame.py...
Number of arguments: 1 arguments. Argument List: ['wordgame2.py']
üst kısmında benim wordgame2.py, aşağıdaki (hata ayıklama amacıyla):
#!/usr/bin/env python
import sys
print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)
Neden uyuşmuyor argümanlar geçiyor = 3? (Evet, formum verileri doğru bir şekilde gönderiyor.)
Herhangi bir yardım büyük beğeni topluyor!
Düzenleme: Böyle ... Ben açıkça o başlangıç ve bitiş kelimeyi söylemek çalıştırılamamasını olmadığını şey ekleyebiliriz:
$output = passthru('python wordgame2.py cat dog');
echo $output
php dosyanızda 'python wordgame2.py $ start_word $ end_word'' echo'yu ne zaman görürsünüz? – GWW
o satırı ekledikten sonra, şimdi çıkışı: Başlat kelimesini: köpek Bitiş kelime: kedi wordgame.py dan Sonuçlar ... piton wordgame2.py köpek kedi argümanlardan sayısı: 1 argümanlar. Bağımsız değişkenler listesi: ['wordgame2.py'] – Micah
Bence bu hata $ $ $ = passthru ('python wordgame2.py $ start_word $ end_word'); '' Bu deneyin $ çıktı = passthru ('python wordgame2.py') $ başlangıç_adı. "".$ end_word); 'Belki python, $ anahtar sözcüğünden kaynaklanan argümanları reddediyor (ya da $ $ değişken yeniden yerleştirme için kabuğu çağırıyor) –