我試圖在windows上安裝imagick PHP擴展。它正在PHP 5.2,PHP 5.3上工作,但我在PHP 5.4中遇到了問題。Imagick PHP 5.4擴展不支持相對路徑。 (windows)
Imagick版本:ImageMagick-6.7.6-3-Q16-windows-dll。模塊正在工作。我可以在phpinfo()中看到imagick。
問題是,imagick無法識別文件的相對路徑。舉例來說,如果我有簡單的的index.php和A.JPG在同一文件夾,我不能使用$im = new imagick('a.jpg');
因爲我得到異常:
Fatal error: Uncaught exception 'ImagickException' with message 'unable to open image `a.jpg': No such file or directory @ error/blob.c/OpenBlob/2614' in D:\Web\i\index.php:3 Stack trace: #0 D:\Web\i\index.php(3): Imagick->__construct('a.jpg') #1 {main} thrown in D:\Web\i\index.php on line 3
但是當我使用絕對路徑$im = new imagick('D:\web\i\a.jpg');
是加工。
我發現,Imagick使用Apache核心dir作爲參考。我保存了沒有路徑的圖像:
$ im-> writeImage('this-is-what-im-looking-for.jpg');
而且我發現它在C:\ Program Files文件(x86)的\ Apache24 \這個的,是什麼-IM-尋找-for.jpg
的問題是,我所有的舊腳本寫有相對路徑,我想countinue使用它們。
我不知道,如果問題是在imagick本身,或PHP 5.4中的某個地方。
預先感謝您
什麼是你的問題?你不能使用'$ _SERVER ['DOCUMENT_ROOT']'? – 2012-03-31 09:56:40
這是唯一的Imagick問題嗎?你可以做'echo __DIR__'並檢查它是否不是你的工作目錄? – 2012-03-31 10:27:29
Ben:我的問題是,如何讓imagick使用當前目錄(D:\ web \ i)作爲工作目錄而不是apache根目錄(C:\ Program Files(x86)\ Apache24 \)(因爲它工作在舊的PHP版本) – 2012-03-31 11:33:06