Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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
Php Imagemagick将pdf转换为png_Php_Command Line_Imagemagick - Fatal编程技术网

Php Imagemagick将pdf转换为png

Php Imagemagick将pdf转换为png,php,command-line,imagemagick,Php,Command Line,Imagemagick,我对使用命令行和php相当陌生。也就是说,我一直在尝试找出如何将ImageMagick与exec()函数一起使用。我现在有这个, $command="/usr/local/lib/ImageMagick convert images/a.pdf images/a.png"; if(exec($command)){ echo 'yes'; } else{ echo 'no'; } 返回“否”。我认为我缺少了一些关于如何从正确的目录执行转换的信息。我的$命令设置正确吗?(我从

我对使用命令行和php相当陌生。也就是说,我一直在尝试找出如何将ImageMagick与exec()函数一起使用。我现在有这个,

$command="/usr/local/lib/ImageMagick  convert images/a.pdf images/a.png"; 

if(exec($command)){
    echo 'yes';
}
else{
    echo 'no';
}
返回“否”。我认为我缺少了一些关于如何从正确的目录执行转换的信息。我的$命令设置正确吗?(我从我的web主机Lunarpages获得了ImageMagick的路径)

我已经通读了一些关于ImageMagick的其他问题,但是我没有找到多少可以帮助我设置命令的东西

谢谢你的帮助,

Levi

您的命令当前试图执行一个名为/usr/local/lib/ImageMagick的程序,我猜这不是您想要的。如果这是ImageMagick的路径,并且要使用convert实用程序,则需要将命令修改为以下内容:

/usr/local/lib/ImageMagick/convert images/a.pdf images/a.png

在这一点上,它应该工作没有任何问题!您可能想进一步了解convert命令可以为您做什么

您的命令当前试图执行一个名为/usr/local/lib/ImageMagick的程序,我猜这不是您想要的。如果这是ImageMagick的路径,并且要使用convert实用程序,则需要将命令修改为以下内容:

/usr/local/lib/ImageMagick/convert images/a.pdf images/a.png
在这一点上,它应该工作没有任何问题!您可能想进一步了解convert命令可以为您做什么

正确使用exec(),因为默认情况下,exec返回字符串,执行结果通过其参数之一传回:

$command="/usr/local/lib/ImageMagick/convert images/a.pdf images/a.png"; 

exec($command,$output,$result);
if ($result == true ){
    echo 'yes';
}
else{
    echo 'no, here's what happened with command output';
    print_r($output);
}
请参阅

以正确的方式使用exec(),因为默认情况下,exec会返回一个字符串,并且执行结果会通过其参数之一传回,如下所示:

$command="/usr/local/lib/ImageMagick/convert images/a.pdf images/a.png"; 

exec($command,$output,$result);
if ($result == true ){
    echo 'yes';
}
else{
    echo 'no, here's what happened with command output';
    print_r($output);
}

请参阅

我尝试了此操作,但仍然出现错误,我尝试添加/删除文件名路径的前向斜杠,如“images/a.pdf”到“/images/a.pdf”。它对我不起作用,但您认为路径可能被错误读取吗?请尝试添加一个PHP诊断输出
echo getcwd()显示当前工作目录的命令。也许当
exec()
运行时,工作目录不是预期的(就在
images
上方)。我确实在正确的位置,就在images(在/gallery/)上方。但是,如果我刚好在上面,那么exec()是否会尝试从/gallery/usr/local/lib/ImageMagick/convert运行?或者exec()是否从根目录运行?当运行exec()时,它将在当前工作目录中运行。在这个例子中,在画廊。Exec应该会返回任何错误,因此,与其使用带有yes和no的if()语句,不如使用echo Exec(…)来查看错误。请注意,在他们的Wiki上,他们为ImageMagick声明了不同的路径:我尝试了这一点,但仍然会收到错误,我尝试添加/删除文件名路径的前斜杠,例如“images/a.pdf”到“/images/a.pdf”。它对我不起作用,但您认为路径可能被错误读取吗?请尝试添加一个PHP诊断输出
echo getcwd()显示当前工作目录的命令。也许当
exec()
运行时,工作目录不是预期的(就在
images
上方)。我确实在正确的位置,就在images(在/gallery/)上方。但是,如果我刚好在上面,那么exec()是否会尝试从/gallery/usr/local/lib/ImageMagick/convert运行?或者exec()是否从根目录运行?当运行exec()时,它将在当前工作目录中运行。在这个例子中,在画廊。Exec应该会返回任何错误,因此,与其使用带有yes和no的if()语句,不如使用echo Exec(…)来查看错误。请注意,在他们的Wiki上,他们为ImageMagick声明了不同的路径: