【问题标题】:PHP shell_exec() not working for some commands like wcPHP shell_exec() 不适用于 wc 等某些命令
【发布时间】:2012-12-27 07:54:00
【问题描述】:

我安装了 ubuntu 12.04 和 PHP 5.3,Apache2。 我需要使用 php 和 pdf 计算 doc 文件中的单词。 虽然我可以将 shell_exec 用于将文本转换为 pdf,但不能用于 wc。 这是代码

    <?php
    $content = shell_exec('pdftotext test.pdf -');
    echo str_word_count($content);// this is working

    $word_count = exec('wc -w test.doc'); //this is not working
    echo $word_count;
    ?>

但是代码在命令行中工作。

【问题讨论】:

  • 很可能是权限问题。查看wc 使用什么权限以及您的 php 用户拥有什么权限。
  • 为什么不使用shell_exec 代替wc 而不是使用exec
  • 我要补充一点,我还没有遇到 PHP exec() 的问题,这不是权限问题。
  • 也可能是路径问题。除了使用exec 以外的其他内容之外,请尝试使用二进制文件的完整路径。我个人更喜欢proc_open,但这比你在这里需要的要复杂。
  • 我也尝试过使用完整路径和 exec() 但没有成功。

标签: php shell ubuntu


【解决方案1】:

其实我的 ubuntu Release 12.04 有问题。 我用 ubuntu 11.10 和 LAMP 试过了。 一切都像一个魅力。 我将重新安装这个 ubuntu 的 dist 并再次检查。

【讨论】:

    【解决方案2】:
    <?php
    
       echo exec('wc -w test.doc;echo $?'); 
    
    ?>
    

    试试这个,看看你能得到什么。 如果结果为0,则有效,否则会给出一些错误信息。

    【讨论】:

    • 不,我只是得到一个没有任何错误的空白。另一件事要提到它直接在命令行中工作。
    猜你喜欢
    • 2018-03-31
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    相关资源
    最近更新 更多