2010-03-14 75 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);