wp_mkdir_p()
wp_mkdir_p( string $target ) 基于完整路径的递归目录创建。 Recursive d…
wp_mkdir_p( string $target )
基于完整路径的递归目录创建。
Recursive directory creation based on full path.
基于完整路径的递归目录创建。
Recursive directory creation based on full path.
目录锚点:#说明#参数#源码#笔记
说明(Description)
将尝试设置文件夹的权限。
参数(Parameters)
| 参数 | 类型 | 说明 |
|---|---|---|
| $target | (string) | 尝试创建的完整路径。 |
源码(Source)
/**
* Recursive directory creation based on full path.
*
* Will attempt to set permissions on folders.
*
* @since 2.0.1
*
* @param string $target Full path to attempt to create.
* @return bool Whether the path was created. True if path already exists.
*/
function wp_mkdir_p( $target ) {
$wrapper = null;
// Strip the protocol.
if ( wp_is_stream( $target ) ) {
list( $wrapper, $target ) = explode( '://', $target, 2 );
}
// From php.net/mkdir user contributed notes.
$target = str_replace( '//', '/', $target );
// Put the wrapper back on the target.
if ( $wrapper !== null ) {
$target = $wrapper . '://' . $target;
}
/*
* Safe mode fails with a trailing slash under certain PHP versions.
* Use rtrim() instead of untrailingslashit to avoid formatting.php dependency.
*/
$target = rtrim($target, '/');
if ( empty($target) )
$target = '/';
if ( file_exists( $target ) )
return @is_dir( $target );
// We need to find the permissions of the parent folder that exists and inherit that.
$target_parent = dirname( $target );
while ( '.' != $target_parent && ! is_dir( $target_parent ) ) {
$target_parent = dirname( $target_parent );
}
// Get the permission bits.
if ( $stat = @stat( $target_parent ) ) {
$dir_perms = $stat['mode'] & 0007777;
} else {
$dir_perms = 0777;
}
if ( @mkdir( $target, $dir_perms, true ) ) {
/*
* If a umask is set that modifies $dir_perms, we'll have to re-set
* the $dir_perms correctly with chmod()
*/
if ( $dir_perms != ( $dir_perms & ~umask() ) ) {
$folder_parts = explode( '/', substr( $target, strlen( $target_parent ) + 1 ) );
for ( $i = 1, $c = count( $folder_parts ); $i <= $c;="" $i++="" )="" {="" @chmod(="" $target_parent="" .="" '/'="" .="" implode(="" '/',="" array_slice(="" $folder_parts,="" 0,="" $i="" )="" ),="" $dir_perms="" );="" }="" }="" return="" true;="" }="" return="" false;="" }="">| 更新版本 | 源码位置 | 使用 | 被使用 |
|---|---|---|---|
| 2.0.1 | wp-includes/functions.php | 7 | 18 |
笔记(Notes)
基本示例
类别:WordPress 函数手册、
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。





还没有任何评论,赶紧来占个楼吧!