2011-12-22 58 views
1

我有这个Ruby脚本(test.rb):从PHP执行Ruby脚本,并获得输出

print "hello" 

而且我有这个PHP脚本(test.php的):

$cmd = "ruby test.rb"; 
system($cmd); 

现在我从CLI打电话给我的PHP脚本是这样的:

php test.php 

而且我没有得到任何输出(它应打印“你好”)

为什么?

+0

是否在您的机器在同一文件夹两个Ruby脚本和PHP和安装红宝石你错过一个分号在你的PHP文件中? – 2011-12-22 13:21:47

+0

我不了解PHP,但是你可能想要'放入“Hello”'。 'print'不包含换行符。 – Linuxios 2011-12-22 14:52:17

回答

5

system会捕获ruby脚本的输出。

你可能想要做的:

$cmd = "ruby test.rb"; 
echo system($cmd); 
+0

是的,没问题,没有回声工作正常,我使用的PHP CLI配置错误,但现在我打开了另一个问题与真正的问题:http://stackoverflow.com/questions/8604637/executing-sass-script -from-php-and-getting-output – 2011-12-22 13:37:09

+0

如果我想用root以外的其他用户运行,那么该怎么办?此代码在本地系统上运行完美,但watir不支持通过root用户运行。你可以建议@RageZ – VipinS 2018-02-22 09:26:21

0

它为我工作,检查

<?php 
$cmd = "ruby test.rb";  
system($cmd); 
?> 
+0

与另一个用户一起运行这个脚本,watur和headless不支持root用户 – VipinS 2018-02-22 09:28:14