2014-09-05
有时候需要递归创建目录函数,这时需要使用dirname()函数(取得路径中的目录部分)和mkdir()函数(创建目录)。
先普及一下语法:
(PHP 4, PHP 5)
dirname ― 返回路径中的目录部分
$path
)给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。
path
一个路径。
在 Windows 中,斜线(/)和反斜线(/)都可以用作目录分隔符。在其它环境下是斜线(/)。
返回 path 的父目录。 如果在 path
中没有斜线,则返回一个点('.'),表示当前目录。否则返回的是把 path
中结尾的 /component(最后一个斜线以及后面部分)去掉之后的字符串。
版本 | 说明 |
---|---|
5.0.0 | dirname() 的操作从 PHP 5.0.0 版开始是二进制安全的。 |
4.0.3 | 在这个版本中,dirname() 被修正为 POSIX 兼容。 |
Example #1 dirname() 例子
echo "1) " . dirname("/etc/passwd") . PHP_EOL; // 1) /etc
echo "2) " . dirname("/etc/") . PHP_EOL; // 2) / (or / on Windows)
echo "3) " . dirname("."); // 3) .
?>
Note:
dirname() operates naively on the input string, and is not aware of the actual filesystem, or path components such as "..".
Note:
dirname() is locale aware, so for it to see the correct directory name with multibyte character paths, the matching locale must be set using the setlocale() function.
Note:
Since PHP 4.3.0, you will often get a slash or a dot back from dirname() in situations where the older functionality would have given you the empty string.
检查下面发生变化的例子:
// PHP 4.3.0 以前
dirname('c:/'); // 返回 '.'
// PHP 4.3.0 以后
dirname('c:/x'); // 返回 'c:'
dirname('c:/Temp/x'); // 返回 'c:/Temp'
dirname('/x'); // 返回 '/' (or '/' on Windows)
?>
(PHP 4, PHP 5)
mkdir ― 新建目录
$pathname
[, int $mode
= 0777 [, bool $recursive
= false [, resource$context
]]] )尝试新建一个由 pathname 指定的目录。
pathname
目录的路径。
mode
默认的 mode 是 0777,意味着最大可能的访问权。有关 mode 的更多信息请阅读 chmod() 页面。
Note:
mode
在 Windows 下被忽略。
注意也许想用八进制数指定模式,也就是说该数应以零打头。模式也会被当前的 umask 修改,可以用 umask()来改变。
recursive
Allows the creation of nested directories specified in the pathname
.
context
Note: 在 PHP 5.0.0 中增加了对上下文(Context)的支持。有关上下文(Context)的说明参见 Streams。
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
版本 | 说明 |
---|---|
5.0.0 | 添加 recursive 参数。 |
5.0.0 | mkdir() 也可用于某些 URL 封装协议。参见支持的协议和封装协议 的列表看看 mkdir() 支持哪些 URL 封装协议。 |
4.2.0 |
mode 成为可选项。 |
Example #1 mkdir() 例子
mkdir("/path/to/my/dir", 0700);
?>
Example #2 通过 recursive
参数使用 mkdir()
// Desired folder structure
$structure = './depth1/depth2/depth3/';
// To create the nested structure, the $recursive parameter
// to mkdir() must be specified.
if (!mkdir($structure, 0, true)) {
die('Failed to create folders...');
}
// ...
?>
Note: 当启用 安全模式时, PHP 会在执行脚本时检查被脚本操作的目录是否与被执行的脚本有相同的 UID(所有者)。
递归创建目录函数:
/** * Create the directory recursively. * @param $path The directory to create, such as, /a/b/c/d/e/ * @param $mode The mode of the directory to create, such as, 0755, 0777. */ function RecursiveMkdir($path,$mode) { if (!file_exists($path)) { // The file is not exist. RecursiveMkdir(dirname($path), $mode); // Call itself. if(mkdir($path, $mode)) { // Call mkdir() to create the last directory, and the result is true. return true; } else { // Call mkdir() to create the last directory, and the result is false. return false; } } else { // The file is already exist. return true; } }
1
CI框架连接数据库配置操作以及多数据库操作
09-05
2
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
05-17
3
C语言关键字及其解释介绍 C语言32个关键字详解
04-05
4
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
04-26
5
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
09-05
6
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
04-12
7
PHP中的(++i)前缀自增 和 (i++)后缀自增
09-05
8
常用dos命令及语法
09-27
PHP中include和require区别之我见
2014-09-05
将视频设置为Android手机开机动画的教程
2014-12-11
php递归返回值的问题
2014-09-05
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
2017-05-03
PHP 教程之如何使用BLOB存取图片信息实例
2014-09-05
java中的info是什么意思
2022-03-24
单片机编程好学吗?单片机初学者怎样看懂代码
2022-03-21
学ug编程如何快速入门?
2022-03-17
PHP数组函数array
2014-09-05
IcePHP框架中的快速后台中的通用CRUD功能框架
2014-09-05
thespike官方正版(排球故事)下载v5.9.237 安卓版
体育运动 219.8M
下载thespike排球游戏手机版(排球故事)下载v5.9.237 安卓最新版本
体育运动 219.8M
下载老爹奶茶店官方版下载v1.0.2安卓版
经营养成 50.7M
下载三国志吕布传九游版下载v100.18.0 安卓版
角色扮演 738.6M
下载小忍计划正版下载v1.8 安卓手机版
经营养成 662.5M
下载传奇三国九游平台版下载v1.3.5 安卓版
角色扮演 407.2M
下载重装火力中文版下载v4.0.8 安卓版
射击枪战 97.5M
下载风流骑士游戏下载v1.8 安卓版
休闲益智 63.4M
下载流浪地球探索宇宙手机版下载v3.2.0 安卓版
下载
dop2删除一部分最新版下载v1.2.2安卓版
下载
仓鼠点心工厂手游下载v1.0.4 安卓版
下载
现代战争5眩晕风暴官方版(Modern Combat 5)下载v6.0.1 安卓版
下载
塔楼冲突最新版下载v2.7.9安卓版
下载
仙魔神迹手机版下载v1.1.6.0 安卓最新版
下载
盗墓笔记启程游戏下载v1.0.4 安卓版
下载
上古密约九天诛魔最新版下载v4.0.2 安卓版
下载