Récemment, j'ai changé le système d'exploitation de ma machine de Windows vers Linux mais maintenant mon application PHP ne semble pas exécuter la fonction opendir()
dans la nouvelle machine. Ci-dessous mon code:La fonction PHP OpenDir ne fonctionne pas sur ma machine Linux Ubuntu
public function scandirs($dir){
$listDir = array();
if($handler = @opendir($dir)) {
while (($sub = readdir($handler)) !== FALSE) {
if ($sub != "." && $sub != ".." && $sub != "Thumb.db") {
if(is_file($dir."/".$sub)) {
$listDir[] = $dir.'\\'.$sub;
}
elseif(is_dir($dir."/".$sub)){
$listDir[$sub] = scandirs($dir."\\".$sub);
}
}
}
closedir($handler);
}
return $listDir;
}
Si je joue un var_dump(opendir($dir));
il retourne juste un faux.
EDIT
Je dois ajouter que je courais les fichiers du terminal Linux.
Quel est le contenu de la variable '$ dir'? – axiac
l'adresse est/var/www/html/esurance365/app/sys/projet –
Si vous exécutez le script à partir de la ligne de commande (Terminal), il est exécuté avec vos autorisations. Quelle est la sortie de 'ls/var/www/html/esurance365/app/sys/project' dans le terminal? Est-ce que 'project' est un répertoire? ['opendir()'] (http://php.net/manual/fr/function.opendir.php) échoue si son premier argument n'est pas un répertoire (ou s'il n'est pas autorisé à l'ouvrir). Supprimez l'opérateur de suppression d'erreurs ('@')] (http://php.net/manual/fr/language.operators.errorcontrol.php) et laissez-le afficher pourquoi il échoue. – axiac