我试图在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