Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行exec命令php_Php_Exec - Fatal编程技术网

运行exec命令php

运行exec命令php,php,exec,Php,Exec,我刚刚安装了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

我刚刚安装了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');
// works and generates the file as expected.
pdf2htmlEX --zoom 1.3 pdf/test.pdf
如果我在
exec
函数中运行一个常规命令,它可以正常工作,因此我知道
exec
已启用并按预期工作

// works fine
$exec =  exec('pwd', $output);
print_r($output);
非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');
// works and generates the file as expected.
pdf2htmlEX --zoom 1.3 pdf/test.pdf
任何帮助都将不胜感激

库的命令行参考

编辑:
在进一步挖掘之后,可能是
php
脚本作为命令行的不同用户运行。然后,我的问题是如何检查/修复此问题?

尝试以下操作,并检查您的文件是否在工作目录中创建

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;

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

大多数pdf-to-something软件包与exec()的用法是
package\u name[选项]


在php中运行命令时,它不会输出test.html文件,但在从命令提示符运行时会输出。我也从gnome终端运行过它,但仍然没有输出。在这两种情况下,都创建了
.html
文件。你可以做一个
$a=文件获取内容(“test.html”);echo$a如果你想看的话。在php中为我执行时,永远不会创建该文件。我认为这可能是由于php脚本是作为不同于命令行的用户执行的。命令行有权限,而脚本没有。不确定如何修复文件夹是否可写?这是必须的。你可以在
/tmp
中复制你的php代码并在那里进行测试。文件夹设置为777谢谢,我对此感到厌倦,但它不起作用。我认为这可能是由于php脚本是作为不同于命令行的用户执行的。命令行有权限,而脚本没有。但不知道如何修复