2010-03-14 40 views
1

我想将PDF文件转换为使用PHP的图像,但我无法使命令工作。 PHP返回一个4.我没有任何想法可以。PHP系统返回4

我用下面的代码:

$tmp = system("convert -version", $value); 
var_dump($value); 

有人的想法?

回答

2

(设置当然相应的头后)尝试

exec("convert -version 2>&1", $out, $ret); 
    print_r($out); 

它应该告诉你什么是错误的

+0

谢谢,现在我得到:Array([0] => Ongeldige stationsspecificatie。)英文:'invalid drive specification' 。在谷歌告诉有关该图像未安装,但这是因为cmd中的convert -version工作! – Timo 2010-03-14 19:28:47

1

它看起来像-version标志告诉转换软件(看起来像imagemagick)用该软件的主要版本号进行响应。它看起来像是正常工作。您可能需要将正确的标志传递给正确的操作。我建议阅读文档以查看转换PDF所需的标志。

+0

我认为不会。因为如果我使用convert w11y2010.pdf test.png作为命令,它也会给出int(4)... – Timo 2010-03-14 19:06:28

+0

@ tomk94 int(4)与'4'不同 - 这很可能是系统返回码。 – 2010-03-14 19:07:56

+0

var_dump($ temp)'说什么?这应该更有启发性。 – 2010-03-14 19:10:50

1

尝试使用PHP中的一些其他系统函数来获取更详细的输出。

exec("convert -version", $output, $value); 
print_r($output); 

EXEC函数上述会给你所有从$输出参数的命令的输出,作为一个数组。

返回状态(这将在EXEC拨打以上或系统呼叫你的原代码$ value参数举行)为您提供了执行shell命令的返回值。

一般情况下,成功为零,非零整数返回值指示不同类型的错误。因此,看起来命令有问题(可能无法识别 - 版本,通常在长时间的命令行选项之前需要双重连字符)。

顺便提一句,你也可能会发现passthru函数更适合你的需求。如果您的转换程序生成与转换的PDF二值图像数据,可以使用中继到的图像数据直接发送到浏览器

0

err ...你是不是vardumping错误的结果? (我会变种倾倒$ TMP,而不是$值)。

我认为的代码应为:

$tmp = system("convert -version", $value); 
var_dump($tmp);