Shell PHP命令和浏览器不会返回相同的输出

时间:2014-04-03 15:45:21

标签: php shell exec

这是我的剧本

test.php的

function doc2text($filename){

    $name = pathinfo($filename,PATHINFO_FILENAME);
    $count = exec('abiword --to=txt '.$filename.' && wc -w classes/'.$name.'.txt');
    $count = explode(" ",$count);
    var_dump($count);
    return $count[0];

}

echo doc2text('classes/demo.pdf');

当我在命令行中运行此脚本时,如下所示:

php test.php

var_dump输出正常:

array(2) {
  [0]=>
  string(4) "1663"
  [1]=>
  string(16) "classes/demo.txt"
}

但是当我在浏览器上运行相同的页面时,数组是空的:

array(1) { [0]=> string(0) "" }

这真的很奇怪......任何线索为什么要这样做?

1 个答案:

答案 0 :(得分:0)

abiword可能不在Web服务器环境的路径中。尝试:/path/to/abiword。此外,$filename将需要位于正在运行的PHP脚本的目录中,或者您需要指定路径。

还使用错误报告:

error_reporting(E_ALL);
ini_set('display_errors', '1');