|资讯 |认证 |圈子 |家园 |文章 |新帖 |公交查询 |实验室网盘 |教案管理 |上网客户端 |课表查询 |切换到宽版
 找回密码

查看: 2624|回复: 1

[开发技巧] Windows环境下PHP mkdir创建文件夹失败的解决方法

[复制链接]
楼主
发表于 2013-5-16 06:34:06 | 只看该作者 |正序浏览 |阅读模式
在Windows环境下使用PHP的函数mkdir("/html/news/1234")创建目录的时候,会提示
Warning: mkdir() [function.mkdir]: No such file or directory

原因:

对于Linux来说
a/ 表示相对路径
/a/ 则是表示绝对路径
在linux中,没有盘符一说,在整个系统里,绝对路径都是以/开头的,而不像Windows系统是以盘符开头的
因为PHP里的文件系统思想是基于linux系统的,所以,你以/开头,PHP就认为这是一个绝对路径,而你的php根目录是建立在E盘的,所以,整个F盘都被PHP当做了一个linux系统,所以,以绝对路径创建文件夹,就是在E盘根目录创建文件夹
而不是DocumentRoot下。

解决办法:

function fly_getroot($path){
$web_root=$_SERVER["DOCUMENT_ROOT"].$path;
$web_path=str_replace("\/","\\",$web_root);
return $web_path;
}

function fly_getwebroot($path){
$web_root=$_SERVER["DOCUMENT_ROOT"].$path;
$web_path=str_replace("\/","\\",$web_root);
return $web_path;
}

使用以上两个函数获取所要创建的文件夹的绝对位置。


该贴已经同步到 小平的微博
分享到:  QQ好友和群 QQ空间 腾讯微博 腾讯朋友 微信
收藏 转播 分享 淘帖 支持 反对
沙发
 楼主| 发表于 2013-5-16 06:36:53 | 只看该作者
        /*
        函数名称:CreateFile
        函数作用:生成文件
        参数说明:string @sFilePath 文件路径 string @sHtml 写入的内容
        */
        public function CreateFile($sFilePath,$sHtml)
        {
                $fp=fopen($sFilePath,"w+");
                if($fp!==false)
                {
                        fwrite($fp,$sHtml);
                        return true;
                }
                return false;
        }

/*创建目录*/
        public function CreateDir($sFilePath)
        {
                if(!is_dir($_SERVER["DOCUMENT_ROOT"].$sFilePath))
                {
                        mkdir($_SERVER["DOCUMENT_ROOT"].$sFilePath);
                        return true;
                }
                return false;
        }
        /*
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


| 手机客户端|小黑屋|Archiver| 127社区-重庆科创职业学院论坛     

Copyright © 2001-2013 Comsenz Inc.   All Rights Reserved.

Powered by Discuz! X3.2( 渝ICP备10016736号 )

快速回复 返回顶部 返回列表