【问题标题】:how to check if .exe file exists in php如何检查.exe文件是否存在于php中
【发布时间】:2013-03-01 07:18:54
【问题描述】:

您好,有什么方法可以检查给定路径上是否存在.exe 文件。 我安装了ImageMagic。我有一条 Image Magic 的convert.exe 路径。我需要检查在给定路径中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。

【问题讨论】:

  • 奇怪,用is_file()试试看结果如何?
  • 第一个代码块的.exe后缺少''。
  • @Ghigo 问题不在代码中
  • 你搞砸了。您发布的代码必须有效。贴一些真实的代码。
  • @AwaisQarni 但在下面的评论中你会说“但在实际代码中我正在使用......”。那么你能粘贴一些更像你的实际代码的东西吗?也许您在其中一个变量中有错字?

标签: php file file-exists


【解决方案1】:

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

$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 上存在同样的问题,并且在连接字符串值时无法返回正确的结果。虽然您没有将字符串值连接在一起,但至少值得一试以确保没有其他奇怪的事情发生。

【讨论】:

  • 如果您知道自己在做什么,那么 php 中的任何内容都不是猜测。我不喜欢“魔术”的方法。
  • 阅读文档,这猜测。
  • 在 Stack Overflow 上你能做的最危险的事情:写一个关于 PHP 问题的合理答案。
  • 在 Stack Overflow 上可以做的最危险的事情:阅读 PHP 文档中的用户 cmets 并与他们一起回答问题。
【解决方案2】:

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

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

此外,您可以通过

了解已安装的扩展程序
<?php 
    print_r(get_loaded_extensions()); 
?>

【讨论】:

  • (假定的)问题是关于 file_exists() 无法正常工作。
  • 这是对提问者提出的问题的有效解决方案
猜你喜欢
  • 2011-05-14
  • 2014-01-11
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 2023-01-02
  • 1970-01-01
  • 2016-10-11
相关资源
最近更新 更多