2013-03-13 5 views
0

Salut il y a un moyen de vérifier si le fichier .exe existe sur un chemin donné ou non. J'ai l'installation de ImageMagic. J'ai un chemin de convert.exe de Image Magic. J'ai besoin de vérifier que dans un chemin donné, le convert.exe existe ou non. Je l'ai mis en œuvrecomment vérifier si le fichier .exe existe dans php

$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'); 
       } 
      } 

je peux changer la valeur de $allPaths['IMAGE_CONVERT_EXE'] dans le fichier. Lorsque je change de valeur, même dans cette condition, il retourne vrai.

+0

étrange, essayez d'utiliser is_file() et voir quel est le résultat? –

+0

Il manque un 'after .exe' dans le premier bloc de code. – Ghigo

+0

Même résultat :-( –

Répondre

1

Basé sur le documentation commentaires spécifiquement sur PHP sur Windows je suppose (et soyons clairs: tout en PHP est une supposition) essayez ceci:

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

En fonction de votre code réel avez-vous essayé:

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

regardant quelqu'un de documentation a commenté d'avoir le même problème sur Windows et d'être incapable de retourner le résultat correct lors de la concaténation des valeurs de chaîne. Bien que vous n'ayez pas à concaténer des valeurs de chaîne ensemble, cela vaut au moins une prise de vue pour s'assurer qu'il n'y a rien d'autre d'étrange qui se passe.

+0

rien dans php est une supposition si vous savez ce que vous faites.Je n'aime pas l'approche" magique " – Ghigo

+0

Lire la documentation, c'est ** une estimation – cfeduke

+0

Par ailleurs dans le code réel J'utilise la variable –

0

Pour moi, il semble que vous essayez d'obtenir ou non l'extension Imagemagick existe. PHP fournit des moyens de le faire, éliminant ainsi votre approche extrapolée et folle tous ensemble.

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

De plus, vous pouvez avoir une idée de vos extensions installées par

<?php 
    print_r(get_loaded_extensions()); 
?> 
+1

le problème (supposé) est que file_exists() ne fonctionne pas correctement. – Ghigo

+0

ceci est une solution valide au problème énoncé par le questionneur – cfeduke

Questions connexes