0

嗨,有什么方法可以检查.exe给定路径上是否存在文件。我已经安装了ImageMagic. 我有一条convert.exeImage Magic之路。我需要检查给定路径中convert.exe是​​否存在。我已经实施

$settingFileContent = file_get_contents($settingFilePath);
       // print_r($settingFileContent);
        $allPaths = unserialize(stripslashes($settingFileContent));

if (isset($allPaths['IMAGE_CONVERT_EXE'])) {
                //cho $allPaths['IMAGE_CONVERT_EXE'];
                if (file_exists($allPaths['IMAGE_CONVERT_EXE'])) {
                    $analysisResultObj->level = ENUM_SUCCESS;
                } else {
                    $analysisResultObj->level = ENUM_ERROR;
                    $analysisResultObj->infoText = "Image Magic convert.ext has wrong path";   
                 Logger::getLogger('Application')->error('Image Magic convert.ext has wrong path');
                }
            }

我可以更改 $allPaths['IMAGE_CONVERT_EXE']文件中的值。即使在这种情况下,当我更改为错误值时,它也会返回 true。

4

2 回答 2

1

根据专门关于 Windows 上 PHP 的文档评论,我猜(让我们明确一点: PHP 中的一切都是猜测)试试这个:

$file = 'd:/somfolder/imagemagic/convert.ext'
if(file_exists($file)) {
    // should be false
}

根据您的实际代码,您是否尝试过:

$file = $allPaths['IMAGE_CONVERT_EXE'];
if(file_exists($file)) {
    // should be false
}

查看文档,有人评论说在 Windows 上存在同样的问题,并且在连接字符串值时无法返回正确的结果。虽然您没有将字符串值连接在一起,但至少值得一试以确保没有其他奇怪的事情发生。

于 2013-03-13T11:29:36.530 回答
0

对我来说,这听起来像是您试图确定 Imagemagick 扩展是否存在。PHP 提供了这样做的方法,从而完全消除了你的推断和疯狂的方法。

<?php    
    echo extension_loaded('imagick');
?>

此外,您可以通过以下方式了解已安装的扩展程序

<?php 
    print_r(get_loaded_extensions()); 
?>
于 2013-03-13T11:40:26.010 回答