Tôi đang viết một ứng dụng đơn giản sử dụng thông tin từ một biểu mẫu, chuyển nó qua $ _POST đến một tập lệnh PHP thực thi một kịch bản lệnh python và xuất kết quả. Vấn đề tôi đang gặp là kịch bản python của tôi không thực sự chạy với các đối số được thông qua trong tập tinThực thi Kịch bản Python với Biến 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;
?>
Output:
Start word: dog
End word: cat
Results from wordgame.py...
Number of arguments: 1 arguments. Argument List: ['wordgame2.py']
Ở phía trên của wordgame2.py của tôi, tôi có những điều sau đây (cho mục đích gỡ lỗi):
#!/usr/bin/env python
import sys
print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)
Tại sao không phải là tê liệt er của các đối số được truyền = 3? (Có, biểu mẫu của tôi gửi dữ liệu chính xác.)
Bất kỳ trợ giúp nào được đánh giá cao!
Edit: Tôi có thể nói thêm rằng nó không chạy khi tôi dứt khoát nói với nó khi bắt đầu và kết thúc từ ... một cái gì đó như thế này:
$output = passthru('python wordgame2.py cat dog');
echo $output
Bạn thấy gì khi bạn 'echo 'python wordgame2.py $ start_word $ end_word'' trong tệp php của bạn? – GWW
Sau khi thêm dòng đó, nó sẽ xuất ra: Từ bắt đầu: dog Từ kết thúc: cat Kết quả từ wordgame.py ... python wordgame2.py dog cat Số đối số: 1 đối số. Danh sách đối số: ['wordgame2.py'] – Micah
Tôi nghĩ rằng sai lầm nằm trong '$ output = passthru ('python wordgame2.py $ start_word $ end_word');' Thử cái này '$ output = passthru ('python wordgame2.py' . $ start_word. "".«Có lẽ, python là từ chối các đối số do $ keyword (hoặc có thể $ là gọi vỏ cho repplacement biến) –