|
- <?php
- if (!defined('DEDEINC')) exit('dedebiz');
- /**
- * 文件处理小助手
- *
- * @version $Id: file.helper.php 1 2010-07-05 11:43:09Z tianya $
- * @package DedeBIZ.Helpers
- * @copyright Copyright (c) 2022, DedeBIZ.COM
- * @license https://www.dedebiz.com/license
- * @link https://www.dedebiz.com
- */
- $g_ftpLink = false;
-
- /**
- * 使用FTP方法创建文件夹目录
- *
- * @param string $truepath 真实目标地址
- * @param string $mmode 创建模式
- * @param string $isMkdir 是否创建目录
- * @return bool
- */
- if (!function_exists('FtpMkdir')) {
- function FtpMkdir($truepath, $mmode, $isMkdir = true)
- {
- global $cfg_basedir, $cfg_ftp_root, $g_ftpLink;
- OpenFtp();
- $ftproot = preg_replace('/'.$cfg_ftp_root.'$/', '', $cfg_basedir);
- $mdir = preg_replace('/^'.$ftproot.'/', '', $truepath);
- if ($isMkdir) {
- ftp_mkdir($g_ftpLink, $mdir);
- }
- return ftp_site($g_ftpLink, "chmod $mmode $mdir");
- }
- }
-
- /**
- * 改变目录模式
- *
- * @param string $truepath 真实地址
- * @param string $mmode 模式
- * @return bool
- */
- if (!function_exists('FtpChmod')) {
- function FtpChmod($truepath, $mmode)
- {
- return FtpMkdir($truepath, $mmode, false);
- }
- }
-
-
- /**
- * 打开FTP链接,打开之前确保已经设置好了FTP相关的配置信息
- *
- * @return void
- */
- if (!function_exists('OpenFtp')) {
- function OpenFtp()
- {
- global $cfg_basedir, $cfg_ftp_host, $cfg_ftp_port, $cfg_ftp_user, $cfg_ftp_pwd, $cfg_ftp_root, $g_ftpLink;
- if (!$g_ftpLink) {
- if ($cfg_ftp_host == '') {
- echo "由于您的站点的PHP配置存在限制,程序尝试用FTP进行目录操作,您必须在后台指定FTP相关的变量";
- exit();
- }
- $g_ftpLink = ftp_connect($cfg_ftp_host, $cfg_ftp_port);
- if (!$g_ftpLink) {
- echo "连接FTP失败";
- exit();
- }
- if (!ftp_login($g_ftpLink, $cfg_ftp_user, $cfg_ftp_pwd)) {
- echo "登录FTP失败";
- exit();
- }
- }
- }
- }
-
-
- /**
- * 关闭FTP链接
- *
- * @return void
- */
- if (!function_exists('CloseFtp')) {
- function CloseFtp()
- {
- global $g_ftpLink;
- if ($g_ftpLink) {
- @ftp_quit($g_ftpLink);
- }
- }
- }
-
-
- /**
- * 创建所有目录
- *
- * @param string $truepath 真实地址
- * @param string $mmode 模式
- * @return bool
- */
- if (!function_exists('MkdirAll')) {
- function MkdirAll($truepath, $mmode)
- {
- global $cfg_ftp_mkdir, $isSafeMode, $cfg_dir_purview;
- if ($isSafeMode || $cfg_ftp_mkdir == 'Y') {
- return FtpMkdir($truepath, $mmode);
- } else {
- if (!file_exists($truepath)) {
- mkdir($truepath, $cfg_dir_purview);
- chmod($truepath, $cfg_dir_purview);
- return true;
- } else {
- return true;
- }
- }
- }
- }
-
- /**
- * 修改所有模式
- *
- * @access public
- * @param string $truepath 文件路径
- * @param string $mmode 模式
- * @return string
- */
- if (!function_exists('ChmodAll')) {
- function ChmodAll($truepath, $mmode)
- {
- global $cfg_ftp_mkdir, $isSafeMode;
- if ($isSafeMode || $cfg_ftp_mkdir == 'Y') {
- return FtpChmod($truepath, $mmode);
- } else {
- return chmod($truepath, '0'.$mmode);
- }
- }
- }
-
-
- /**
- * 创建目录
- *
- * @param string $spath 创建的文件夹
- * @return bool
- */
- if (!function_exists('CreateDir')) {
- function CreateDir($spath)
- {
- if (!function_exists('SpCreateDir')) {
- require_once(DEDEINC.'/inc/inc_fun_funAdmin.php');
- }
- return SpCreateDir($spath);
- }
- }
-
- /**
- * 写文件
- *
- * @access public
- * @param string $file 文件名
- * @param string $content 内容
- * @param int $flag 标识
- * @return string
- */
- if (!function_exists('PutFile')) {
- function PutFile($file, $content, $flag = 0)
- {
- $pathinfo = pathinfo($file);
- if (!empty($pathinfo['dirname'])) {
- if (file_exists($pathinfo['dirname']) === FALSE) {
- if (@mkdir($pathinfo['dirname'], 0777, TRUE) === FALSE) {
- return FALSE;
- }
- }
- }
- if ($flag === FILE_APPEND) {
- return @file_put_contents($file, $content, FILE_APPEND);
- } else {
- return @file_put_contents($file, $content, LOCK_EX);
- }
- }
- }
-
- /**
- * 用递归方式删除目录
- *
- * @access public
- * @param string $file 目录文件
- * @return string
- */
- if (!function_exists('RmRecurse')) {
- function RmRecurse($file)
- {
- if (is_dir($file) && !is_link($file)) {
- foreach (glob($file.'/*') as $sf) {
- if (!RmRecurse($sf)) {
- return false;
- }
- }
- return @rmdir($file);
- } else {
- return @unlink($file);
- }
- }
- }
|