2011-12-22 75 views
0

我有这个PHP脚本(test.php的):从PHP执行脚本SASS和获取输出

<?php 

    $cmd = "/usr/bin/sass --watch file1.scss"; 

    system($cmd); 

?> 

现在我这样叫我的PHP脚本从CLI:

/usr/bin/php test.php 

我也得到没有输出(它应该打印SASS正在观察变化)。

如果我直接从shell调用SASS命令,它会正确输出。

为什么?

信息:我使用的是OS X Lion的

编辑的PHP 5.3.6版本:请注意,更改此命令的手表,它似乎表现不同的常规命令。

编辑2:该命令起作用,它编译正确。唯一缺少的是输出(我想调试并查看错误:)

回答

0

一些命令行实用程序等青菜,操纵所述输出管道以某种方式PHP不能使用。

因此,在这种特殊情况下,没有解决方案。

0

system()返回一个字符串。只是回应它。

+0

nope,它保持不变 – 2011-12-22 13:39:00

+0

所以,它可能是你的PATH问题。尝试使用sass可执行文件的完整路径(用“哪个sass”得到它) – 2011-12-22 13:43:50

+0

仍然不起作用,我会更新问题,明确指令的工作原理,但它只是缺少输出 – 2011-12-22 13:46:27

0

根据需要在第二个参数给系统传递http://se.php.net/system()和该命令的返回值将在该变量被设置:

<?php 
system($command, $return); 

echo $return; 
+0

这也行不通,请请注意,它是一个在循环中执行自己以查看更改的命令,所以,我不搜索返回值,只是正常输出(顺便说一句,在此情况下,使用ctrl + c完成命令的任何输出都不会) – 2011-12-22 13:54:49