2010-03-24 29 views

Trả lời

5

Sử dụng backtick operator:

my $phpOutput = `/usr/bin/php-cli your-script.php`; 

Lưu ý rằng bạn có thể phải chỉnh sửa con đường để trỏ đến php thực thi của bạn.

Nếu bạn muốn có đầu ra như một dòng suối bạn cũng có thể open với một ống (Perl < 3):

open PHPOUT, "/usr/bin/php-cli your-script.php|"; 
while (<PHPOUT>) { 
    # do something with the current line $_ 
} 

Xem perldoc -f open.

+0

tôi đã làm và không có gì xuất hiện. nó quá đơn giản đối với google, tôi đoán vậy. Tôi là một anh chàng php, như bạn có thể đoán và perl giống như một vũ trụ hoàn toàn khác đối với tôi. cảm ơn. – vasion

1

Mặt sau của this question, nhưng cùng một câu trả lời.

Sử dụng backticks hoặc qx điều hành:

$output = `/path/to/php my_script.php`; 
+0

Tôi thích sử dụng 'readpipe' để backticks, tôi nghĩ rằng nó làm cho ý định rõ ràng hơn. – Matt

1

Nó có thể dễ dàng hơn để chưng cất này vào vấn đề cốt lõi của nó, làm thế nào để gọi một chương trình khác từ perl, được trả lời trong thông tin các perlop manpage về qx (hoặc tra cứu lệnh perl qx thông qua một số phương tiện khác). Điều đó thông báo cho bạn làm thế nào để chạy một chương trình bên ngoài và nhận được đầu ra, giả sử rằng kịch bản PHP của bạn thực sự là chức năng khi được gọi thông qua dòng lệnh (bạn có thể chạy nó thông qua php your-php-script.php?).

Nếu tập lệnh của bạn chỉ hoạt động thông qua yêu cầu HTTP, bạn cần sử dụng một cái gì đó như LWP :: UserAgent hoặc WWW :: Mechanize để lấy nội dung thông qua URL của nó, tương tự như cách bạn sẽ cần sử dụng HTTP_Request.php PHP.

+0

LOL, cảm ơn vì đã cập nhật cộng đồng gần 8 năm sau sự kiện. Tôi tốt hơn nhiều khi phân biệt nó/của nó bây giờ, và nó đã được đau đớn để xem những gì nó trông giống như ở trạng thái trước của nó trong trang so sánh. Tôi cho rằng nó thực sự đặt ra một ai đó để có được điều trị này sau này về một câu hỏi nhỏ, vì vậy xin lỗi cho điều đó, nhưng tôi sẽ không phàn nàn nếu ai đó làm cho tôi nhìn tốt hơn hồi tố. :) – kbenson

Các vấn đề liên quan