运行执行命令 php


Running exec command php

我刚刚安装了pdf2htmlEX,没有任何问题。如果我在服务器上运行该命令,它可以正常工作。所以我知道图书馆本身正在做它应该做的事情。如果我通过exec函数在php中运行命令,则没有任何反应。我假设在这种情况下使用exec??

在 PHP 中

// doesn't work
$output = exec('pdf2htmlEX --zoom 1.3 pdf/test.pdf');
// doesn't work
$output = shell_exec('pdf2htmlEX --zoom 1.3 pdf/test.pdf');

如果我在exec函数中运行常规命令,它可以正常工作,因此我知道exec已启用并按预期工作。

// works fine
$exec =  exec('pwd', $output);
print_r($output);

直接在命令行而不是在 PHP 中

// works and generates the file as expected.
pdf2htmlEX --zoom 1.3 pdf/test.pdf

任何帮助将不胜感激。

库的命令行参考https://github.com/coolwanglu/pdf2htmlEX/wiki/Quick-Start

编辑:经过进一步挖掘后,可能是php脚本以命令行的不同用户身份运行。那么我的问题是如何检查/解决此问题?

您只需要在命令中添加输出 html 路径和文件名:

大多数软件包pdf_to_something exec() 的使用都是package_name [options] <input-filename> <output-filename>

$path = 'path/to/your/folder/';
$command = 'pdf2htmlEX '.$path.'test.pdf '.$path.'test.html';
exec($command);

尝试关注并检查您的文件是否在工作目录中创建。

exec('pdf2htmlEX --zoom 1.3 pdf/test.pdf',$output);
pdf2htmlEX

输出任何内容。

$cmd=  "pdf2htmlEX --zoom 1.3 test/test.pdf";
exec($cmd, $output);

将在当前目录中创建一个test.html文件。

你期待别的东西吗?

注意:我已经通过在 ubuntu 上安装pdf2htmlEX对此进行了测试

sudo apt-get install pdf2htmlex

要获取输出,

$a = file_get_contents("test.html"); 
echo $a;