最近私のマシンのOSをWindowsからLinuxに変更しましたが、PHPアプリケーションでは新しいマシン内でopendir()
関数が実行されていないようです。以下は私のコードです:PHP OpenDir関数が私のUbuntu Linuxマシンで動作しない
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;
}
私はvar_dump(opendir($dir));
を実行した場合、それだけで偽を返します。私はLinuxのターミナルからファイルを実行していることを追加する必要があり
EDIT
。
変数 '$ dir'の内容は何ですか? – axiac
アドレスは/ var/www/html/esurance365/app/sys/project –
です。コマンドライン(ターミナル)からスクリプトを実行すると、あなたの権限で実行されます。ターミナルの 'ls/var/www/html/esurance365/app/sys/project'の出力は何ですか? 'project'はディレクトリですか?最初の引数がディレクトリでない(またはそれを開くことができない)場合、['opendir()'](http://php.net/manual/en/function.opendir.php)は失敗します。 [エラー抑制演算子( '@')](http://php.net/manual/en/language.operators.errorcontrol.php)を削除し、なぜ失敗するのかを表示させます。 – axiac