php include_once始终不成功,报500错误

rushio 2017-09-27 05:18:12
有func.php文件,内容如下:

<?php
function mk_dirs($dir, $mode = 0777) {
if (is_dir($dir) || @mkdir($dir, $mode)) {
return TRUE;
}
if (!mk_dirs(dirname($dir), $mode)) {
return FALSE;
}
return @mkdir($dir, $mode);
}


在需要调用mk_dirs()的 a.php 中(a.php 和 func.php 放在同一个目录下):

<?php
echo 'mk_dirs() test start....';
include_once 'func.php';
$dir = '/data/wwwroot/myapp/test';
if (mk_dirs($dir)) {
echo '目录创建成功!';
} else {
echo '目录创建失败!';
}


在浏览器中访问a.php,web服务器就报500错误。注释掉a.php第三行即include_once....这行及后面所有代码,就能正常。好奇怪。哪位大神指点一下?非常感谢:)
...全文
706 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
rushio 2017-09-27
  • 打赏
  • 举报
回复
将mk_dirs 换成 @Mechnaic 大侠 2楼、3楼的代码后,正常了,非常感谢 同时一并感谢 @jordan102 @kyzy_yy_pm 两位大侠的热心回答
kyzy_yy_pm 2017-09-27
  • 打赏
  • 举报
回复
echo realpath('./);exit; 把这个加上去看看输出什么,的到的是你想要的目录吗?不是的话调整下
一起混吧 2017-09-27
  • 打赏
  • 举报
回复
打开php的错误提示功能
Mechnaic 2017-09-27
  • 打赏
  • 举报
回复

function dir_path($path)
    {
        $path = str_replace('\\', '/', $path);
        if (substr($path, -1) != '/') $path = $path . '/';
        return $path;
    }

Mechnaic 2017-09-27
  • 打赏
  • 举报
回复

function mk_dirs($dir, $mode = 0777)
    {
        if (is_dir($dir)) return TRUE;
        $ftp_enable = 0;
        $dir = dir_path($dir);
        $temp = explode('/', $dir);
        $cur_dir = '';
        $max = count($temp) - 1;
        for ($i = 0; $i < $max; $i++) {
            $cur_dir .= $temp[$i] . '/';
            if (@is_dir($cur_dir)) continue;
            @mkdir($cur_dir, $mode, true);
            @chmod($cur_dir, $mode);
        }
        return is_dir($dir);
    }



echo 'mk_dirs() test start....';
include_once 'func.php';
$dir = '/data/wwwroot/myapp/test';
if (mk_dirs($dir,0777)) {
    echo '目录创建成功!';
} else {
    echo '目录创建失败!';
}

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧