发表时间: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()来改变。
recursiveAllows the creation of nested directories specified in the pathname.
contextNote: 在 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; } }
CI框架连接数据库配置操作以及多数据库操作
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
C语言关键字及其解释介绍 C语言32个关键字详解
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
PHP中的(++i)前缀自增 和 (i++)后缀自增
将视频设置为Android手机开机动画的教程
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
常用dos命令及语法
PHP中include和require区别之我见
荆门市民卡最新版(i荆门)下载v2.5.6 安卓手机版
67.08MB |资讯阅读
时光手帐官方版下载v6.3.8 安卓版
61.31MB |生活服务
皮皮手账手机版(改名时光手帐)下载v6.3.8 安卓版
61.31MB |系统工具
定格动画工作室app(stop motion studio)下载v25.08.8578 安卓官方中文版
122.84MB |系统工具
宝地贵池新闻客户端下载v1.0.7 安卓版
114.26MB |资讯阅读
杭州办事服务官方版(杭州城市大脑)下载v4.0.2 安卓版
145.38MB |商务办公
生态鹤岗app下载v4.5.4 安卓版
105.42MB |资讯阅读
妈妈来了月嫂手机版下载v9.8.92 安卓最新版
185.21MB |生活服务
2014-09-05
2022-03-20
2022-03-21
2022-03-24
2014-09-05
2014-09-05
2015-07-05
2014-09-05
2022-03-21
2014-09-05
屠魔传奇2手游下载v2.5.5 安卓版
其它手游trials frontier游戏下载v7.9.4 安卓版
其它手游密室逃脱求生系列1极地冒险内购破解版下载v700.00.13 安卓无限提示版
其它手游特技摩托前线内购破解版下载v7.9.4 安卓版
其它手游特技摩托前线免验证版下载v7.9.4 安卓无限钻石版
其它手游密室逃脱求生系列2极限密探手游下载v700.00.02 安卓版
其它手游印度汽车驾驶模拟器最新版下载v41 安卓版
其它手游密室逃脱求生系列2极限密探九游最新版下载v700.00.02 安卓版
其它手游密室逃脱生存模拟游戏下载v2.0.2 安卓版
其它手游