我在使用PHP 5.4.12的CentOS 6 64位上。
这是PHP非常奇怪的行为。
请参阅以下脚本:
echo 'Trying Query: whereis jbig2dec<br>';
exec('whereis jbig2dec',$output) or die('Failed');
$location=explode(' ',implode($output));
$location=$location[1];
echo 'Result: '.implode($output)."<p>";
echo 'Trying Query: '.$location.' --help<br>';
exec($location.' --help',$output) or die('Failed');
echo 'Result: '.implode($output)."<p>";
echo 'Trying Query: jbig2dec --help<br>';
exec('jbig2dec --help',$output) or die('Failed');
echo 'Result: '.implode($output)."<p>";
结果是:
Trying Query: whereis jbig2dec
Result: jbig2dec: /usr/local/bin/jbig2dec
Trying Query: /usr/local/bin/jbig2dec --help
Failed
基本上你可以看到上面的PHP exec函数适用whereis jbig2dec
但失败了/usr/local/bin/jbig2dec --help
。但是如果我键入/usr/local/bin/jbig2dec --help
或jbig2dec --help
进入SSH,我会从jbig2dec得到正确的响应。
怎么会这样?