2011-07-25 59 views
0

因此,我使用命令行高手執行Image Magick轉換,而我遇到了一個問題,我很確定必須使用'!'在裏面。有時候我可能想用我的庫來調整圖像的大小而不保持高寬比,Image Magick有一個命令可以做到這一點。您只需將最大寬度和高度值與「!」相加即可問題是我無法完成它的工作,而且它完全忽略了高度限制。我認爲它是因爲'!'需要逃脫,但我似乎無法得到它的工作。誰能告訴我怎麼可能會得到這個命令的工作:PHP執行命令和轉義特殊字符

exec("convert $theFile -resize $max_Xx$max_Y! $theFile", $outputAry); 

$ theFile是圖片路徑,和$ MAX_X和MAX_Y是通過什麼樣的用戶將其設爲傳入的寬度和高度值。沒有'!'並且在保持高寬比的同時調整大小,但是如果寫在那裏,它會忽略高度並且只在保持原始高度的同時調整寬度。我已經嘗試通過在'!'前放置'\'來逃脫它。但它不起作用。任何人都有正確的語法的任何想法?

回答

1

嘗試-resize {$max_X}x{$max_Y}!
編輯:您可能仍然需要逃避!使用來自其他答案的建議

+0

這樣做!我猜測PHP沒有通過括號來傳遞高度值。非常感謝。 – Throttlehead

0

我永遠不記得有逃脫的感嘆號,但是這可以幫助你:

http://php.net/manual/en/function.escapeshellcmd.php

+0

如果命令通過Bash,'!'可能會調用歷史控制函數......正確轉義應該有所幫助;或者可以使用'system()'而不是'exec'。 –

+0

是的,這是我第一次嘗試。沒有工作,但無論如何感謝:) – Throttlehead