PHPフォルダファイルコピー/コピー関数dir_copy($src = '', $dst = '')

974 ワード

/**
 *        
 *
 * @param string $src      
 * @param string $dst       
 * @return bool
 */
function dir_copy($src = '', $dst = '')
{
	if (empty($src) || empty($dst))
	{
		return false;
	}

	$dir = opendir($src);
	dir_mkdir($dst);
	while (false !== ($file = readdir($dir)))
	{
		if (($file != '.') && ($file != '..'))
		{
			if (is_dir($src . '/' . $file))
			{
				dir_copy($src . '/' . $file, $dst . '/' . $file);
			}
			else
			{
				copy($src . '/' . $file, $dst . '/' . $file);
			}
		}
	}
	closedir($dir);

	return true;
}

/**
 *      
 *
 * @param string $path      
 * @param int $mode     
 * @param bool $recursive       
 * @return bool
 */
function dir_mkdir($path = '', $mode = 0777, $recursive = true)
{
	clearstatcache();
	if (!is_dir($path))
	{
		mkdir($path, $mode, $recursive);
		return chmod($path, $mode);
	}

	return true;
}