PHP创建500错误

时间:2013-07-30 14:54:06

标签: php

我遇到了显示给定目录的所有文件和子目录文件的函数问题。它在本地工作,但是当我上传它时,页面只会出现500错误。

我已经尝试过chmod到777,甚至是它搜索的整个目录,但似乎没有任何效果。任何帮助表示赞赏!

<?php

$directory = '../..';
$files = listFiles($directory, 'start.js');

echo json_encode($files);

function listFiles($dir, $origin) {
    $directory = scandir($dir);
    $files = [];

    foreach($directory as $file){
        if($file != '.' && $file != '..') {
            $thisFile = $dir . '/' . $file;

            if(is_dir($thisFile)) {
                $files = array_merge($files, listFiles($thisFile, $origin));
            }else{
                $tempDir = str_replace('../..', '/game', $thisFile);
                $extension = substr(strrchr($thisFile, '.'), 1);

                if($extension == 'js' && strpos($thisFile, $origin) === false) $files[] = $tempDir;
            }
        }
    }

    return $files;
}

3 个答案:

答案 0 :(得分:3)

语法:

$files = [];

只能从某个PHP版本(我认为5.4)中获得。检查服务器是否与开发环境版本相同。

答案 1 :(得分:2)

首先使用以下PHP代码启用错误报告:

 ini_set('display_errors','On');
 error_reporting(E_ALL);

其次,检查语法错误或其他内容。 像以前的评论者说的语法..

$files = [];

..仅适用于某个PHP版本(我认为5.4)。检查服务器是否与开发环境版本相同。

答案 2 :(得分:0)

在我的localhost上测试:

<?php

    $directory = '../..';
    $files = listFiles($directory, 'start.js');

    echo json_encode($files);

    function listFiles($dir, $origin) {
        $directory = scandir($dir);
        $files = array();

        foreach($directory as $file){
            if($file != '.' && $file != '..') {
                $thisFile = $dir . '/' . $file;

                if(is_dir($thisFile)) {
                    $files = array_merge($files, listFiles($thisFile, $origin));
                }else{
                    $tempDir = str_replace('../..', '/game', $thisFile);
                    $extension = substr(strrchr($thisFile, '.'), 1);

                    if($extension == 'js' && strpos($thisFile, $origin) === false) $files[] = $tempDir;
                }
            }
        }

        return $files;
    }

PS:首先,代码在$ files上给我一个错误...我改变它并且它有效。