Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/wp-file-.../lib/php
File: elFinderVolumeDriver.class.php
[7000] Fix | Delete
/**
[7001] Fix | Delete
* Check and filter the extracted items
[7002] Fix | Delete
*
[7003] Fix | Delete
* @param string $path target local path
[7004] Fix | Delete
* @param array $checks types to check default: ['symlink', 'name', 'writable', 'mime']
[7005] Fix | Delete
*
[7006] Fix | Delete
* @return array ['symlinks' => [], 'names' => [], 'writables' => [], 'mimes' => [], 'rmNames' => [], 'totalSize' => 0]
[7007] Fix | Delete
* @throws elFinderAbortException
[7008] Fix | Delete
* @throws Exception
[7009] Fix | Delete
* @author Naoki Sawada
[7010] Fix | Delete
*/
[7011] Fix | Delete
protected function checkExtractItems($path, $checks = null)
[7012] Fix | Delete
{
[7013] Fix | Delete
if (is_null($checks) || !is_array($checks)) {
[7014] Fix | Delete
$checks = array('symlink', 'name', 'writable', 'mime');
[7015] Fix | Delete
}
[7016] Fix | Delete
$chkSymlink = in_array('symlink', $checks);
[7017] Fix | Delete
$chkName = in_array('name', $checks);
[7018] Fix | Delete
$chkWritable = in_array('writable', $checks);
[7019] Fix | Delete
$chkMime = in_array('mime', $checks);
[7020] Fix | Delete
[7021] Fix | Delete
$res = array(
[7022] Fix | Delete
'symlinks' => array(),
[7023] Fix | Delete
'names' => array(),
[7024] Fix | Delete
'writables' => array(),
[7025] Fix | Delete
'mimes' => array(),
[7026] Fix | Delete
'rmNames' => array(),
[7027] Fix | Delete
'totalSize' => 0
[7028] Fix | Delete
);
[7029] Fix | Delete
[7030] Fix | Delete
if (is_dir($path)) {
[7031] Fix | Delete
$files = self::localScandir($path);
[7032] Fix | Delete
} else {
[7033] Fix | Delete
$files = array(basename($path));
[7034] Fix | Delete
$path = dirname($path);
[7035] Fix | Delete
}
[7036] Fix | Delete
[7037] Fix | Delete
foreach ($files as $name) {
[7038] Fix | Delete
$p = $path . DIRECTORY_SEPARATOR . $name;
[7039] Fix | Delete
$utf8Name = elFinder::$instance->utf8Encode($name);
[7040] Fix | Delete
if ($name !== $utf8Name) {
[7041] Fix | Delete
$fsSame = false;
[7042] Fix | Delete
if ($this->encoding) {
[7043] Fix | Delete
// test as fs encoding
[7044] Fix | Delete
$_utf8 = @iconv($this->encoding, 'utf-8//IGNORE', $name);
[7045] Fix | Delete
if (@iconv('utf-8', $this->encoding.'//IGNORE', $_utf8) === $name) {
[7046] Fix | Delete
$fsSame = true;
[7047] Fix | Delete
$utf8Name = $_utf8;
[7048] Fix | Delete
} else {
[7049] Fix | Delete
$_name = $this->convEncIn($utf8Name, true);
[7050] Fix | Delete
}
[7051] Fix | Delete
} else {
[7052] Fix | Delete
$_name = $utf8Name;
[7053] Fix | Delete
}
[7054] Fix | Delete
if (!$fsSame && rename($p, $path . DIRECTORY_SEPARATOR . $_name)) {
[7055] Fix | Delete
$name = $_name;
[7056] Fix | Delete
$p = $path . DIRECTORY_SEPARATOR . $name;
[7057] Fix | Delete
}
[7058] Fix | Delete
}
[7059] Fix | Delete
if (!is_readable($p)) {
[7060] Fix | Delete
// Perhaps a symbolic link to open_basedir restricted location
[7061] Fix | Delete
self::localRmdirRecursive($p);
[7062] Fix | Delete
$res['symlinks'][] = $p;
[7063] Fix | Delete
$res['rmNames'][] = $utf8Name;
[7064] Fix | Delete
continue;
[7065] Fix | Delete
}
[7066] Fix | Delete
if ($chkSymlink && is_link($p)) {
[7067] Fix | Delete
self::localRmdirRecursive($p);
[7068] Fix | Delete
$res['symlinks'][] = $p;
[7069] Fix | Delete
$res['rmNames'][] = $utf8Name;
[7070] Fix | Delete
continue;
[7071] Fix | Delete
}
[7072] Fix | Delete
$isDir = is_dir($p);
[7073] Fix | Delete
if ($chkName && !$this->nameAccepted($name, $isDir)) {
[7074] Fix | Delete
self::localRmdirRecursive($p);
[7075] Fix | Delete
$res['names'][] = $p;
[7076] Fix | Delete
$res['rmNames'][] = $utf8Name;
[7077] Fix | Delete
continue;
[7078] Fix | Delete
}
[7079] Fix | Delete
if ($chkWritable && !$this->attr($p, 'write', null, $isDir)) {
[7080] Fix | Delete
self::localRmdirRecursive($p);
[7081] Fix | Delete
$res['writables'][] = $p;
[7082] Fix | Delete
$res['rmNames'][] = $utf8Name;
[7083] Fix | Delete
continue;
[7084] Fix | Delete
}
[7085] Fix | Delete
if ($isDir) {
[7086] Fix | Delete
$cRes = $this->checkExtractItems($p, $checks);
[7087] Fix | Delete
foreach ($cRes as $k => $v) {
[7088] Fix | Delete
if (is_array($v)) {
[7089] Fix | Delete
$res[$k] = array_merge($res[$k], $cRes[$k]);
[7090] Fix | Delete
} else {
[7091] Fix | Delete
$res[$k] += $cRes[$k];
[7092] Fix | Delete
}
[7093] Fix | Delete
}
[7094] Fix | Delete
} else {
[7095] Fix | Delete
if ($chkMime && ($mimeByName = elFinderVolumeDriver::mimetypeInternalDetect($name)) && !$this->allowPutMime($mimeByName)) {
[7096] Fix | Delete
self::localRmdirRecursive($p);
[7097] Fix | Delete
$res['mimes'][] = $p;
[7098] Fix | Delete
$res['rmNames'][] = $utf8Name;
[7099] Fix | Delete
continue;
[7100] Fix | Delete
}
[7101] Fix | Delete
$res['totalSize'] += (int)sprintf('%u', filesize($p));
[7102] Fix | Delete
}
[7103] Fix | Delete
}
[7104] Fix | Delete
$res['rmNames'] = array_unique($res['rmNames']);
[7105] Fix | Delete
[7106] Fix | Delete
return $res;
[7107] Fix | Delete
}
[7108] Fix | Delete
[7109] Fix | Delete
/**
[7110] Fix | Delete
* Return files of target directory that is dotfiles excludes.
[7111] Fix | Delete
*
[7112] Fix | Delete
* @param string $dir target directory path
[7113] Fix | Delete
*
[7114] Fix | Delete
* @return array
[7115] Fix | Delete
* @throws Exception
[7116] Fix | Delete
* @author Naoki Sawada
[7117] Fix | Delete
*/
[7118] Fix | Delete
protected static function localScandir($dir)
[7119] Fix | Delete
{
[7120] Fix | Delete
// PHP function scandir() is not work well in specific environment. I dont know why.
[7121] Fix | Delete
// ref. https://github.com/Studio-42/elFinder/issues/1248
[7122] Fix | Delete
$files = array();
[7123] Fix | Delete
if ($dh = opendir($dir)) {
[7124] Fix | Delete
while (false !== ($file = readdir($dh))) {
[7125] Fix | Delete
if ($file !== '.' && $file !== '..') {
[7126] Fix | Delete
$files[] = $file;
[7127] Fix | Delete
}
[7128] Fix | Delete
}
[7129] Fix | Delete
closedir($dh);
[7130] Fix | Delete
} else {
[7131] Fix | Delete
throw new Exception('Can not open local directory.');
[7132] Fix | Delete
}
[7133] Fix | Delete
return $files;
[7134] Fix | Delete
}
[7135] Fix | Delete
[7136] Fix | Delete
/**
[7137] Fix | Delete
* Remove directory recursive on local file system
[7138] Fix | Delete
*
[7139] Fix | Delete
* @param string $dir Target dirctory path
[7140] Fix | Delete
*
[7141] Fix | Delete
* @return boolean
[7142] Fix | Delete
* @throws elFinderAbortException
[7143] Fix | Delete
* @author Naoki Sawada
[7144] Fix | Delete
*/
[7145] Fix | Delete
protected static function localRmdirRecursive($dir)
[7146] Fix | Delete
{
[7147] Fix | Delete
// try system command
[7148] Fix | Delete
if (is_callable('exec')) {
[7149] Fix | Delete
$o = '';
[7150] Fix | Delete
$r = 1;
[7151] Fix | Delete
if (substr(PHP_OS, 0, 3) === 'WIN') {
[7152] Fix | Delete
if (!is_link($dir) && is_dir($dir)) {
[7153] Fix | Delete
exec('rd /S /Q ' . escapeshellarg($dir), $o, $r);
[7154] Fix | Delete
} else {
[7155] Fix | Delete
exec('del /F /Q ' . escapeshellarg($dir), $o, $r);
[7156] Fix | Delete
}
[7157] Fix | Delete
} else {
[7158] Fix | Delete
exec('rm -rf ' . escapeshellarg($dir), $o, $r);
[7159] Fix | Delete
}
[7160] Fix | Delete
if ($r === 0) {
[7161] Fix | Delete
return true;
[7162] Fix | Delete
}
[7163] Fix | Delete
}
[7164] Fix | Delete
if (!is_link($dir) && is_dir($dir)) {
[7165] Fix | Delete
chmod($dir, 0777);
[7166] Fix | Delete
if ($handle = opendir($dir)) {
[7167] Fix | Delete
while (false !== ($file = readdir($handle))) {
[7168] Fix | Delete
if ($file === '.' || $file === '..') {
[7169] Fix | Delete
continue;
[7170] Fix | Delete
}
[7171] Fix | Delete
elFinder::extendTimeLimit(30);
[7172] Fix | Delete
$path = $dir . DIRECTORY_SEPARATOR . $file;
[7173] Fix | Delete
if (!is_link($dir) && is_dir($path)) {
[7174] Fix | Delete
self::localRmdirRecursive($path);
[7175] Fix | Delete
} else {
[7176] Fix | Delete
chmod($path, 0666);
[7177] Fix | Delete
unlink($path);
[7178] Fix | Delete
}
[7179] Fix | Delete
}
[7180] Fix | Delete
closedir($handle);
[7181] Fix | Delete
}
[7182] Fix | Delete
return rmdir($dir);
[7183] Fix | Delete
} else {
[7184] Fix | Delete
chmod($dir, 0666);
[7185] Fix | Delete
return unlink($dir);
[7186] Fix | Delete
}
[7187] Fix | Delete
}
[7188] Fix | Delete
[7189] Fix | Delete
/**
[7190] Fix | Delete
* Move item recursive on local file system
[7191] Fix | Delete
*
[7192] Fix | Delete
* @param string $src
[7193] Fix | Delete
* @param string $target
[7194] Fix | Delete
* @param bool $overWrite
[7195] Fix | Delete
* @param bool $copyJoin
[7196] Fix | Delete
*
[7197] Fix | Delete
* @return boolean
[7198] Fix | Delete
* @throws elFinderAbortException
[7199] Fix | Delete
* @throws Exception
[7200] Fix | Delete
* @author Naoki Sawada
[7201] Fix | Delete
*/
[7202] Fix | Delete
protected static function localMoveRecursive($src, $target, $overWrite = true, $copyJoin = true)
[7203] Fix | Delete
{
[7204] Fix | Delete
$res = false;
[7205] Fix | Delete
if (!file_exists($target)) {
[7206] Fix | Delete
return rename($src, $target);
[7207] Fix | Delete
}
[7208] Fix | Delete
if (!$copyJoin || !is_dir($target)) {
[7209] Fix | Delete
if ($overWrite) {
[7210] Fix | Delete
if (is_dir($target)) {
[7211] Fix | Delete
$del = self::localRmdirRecursive($target);
[7212] Fix | Delete
} else {
[7213] Fix | Delete
$del = unlink($target);
[7214] Fix | Delete
}
[7215] Fix | Delete
if ($del) {
[7216] Fix | Delete
return rename($src, $target);
[7217] Fix | Delete
}
[7218] Fix | Delete
}
[7219] Fix | Delete
} else {
[7220] Fix | Delete
foreach (self::localScandir($src) as $item) {
[7221] Fix | Delete
$res |= self::localMoveRecursive($src . DIRECTORY_SEPARATOR . $item, $target . DIRECTORY_SEPARATOR . $item, $overWrite, $copyJoin);
[7222] Fix | Delete
}
[7223] Fix | Delete
}
[7224] Fix | Delete
return (bool)$res;
[7225] Fix | Delete
}
[7226] Fix | Delete
[7227] Fix | Delete
/**
[7228] Fix | Delete
* Create Zip archive using PHP class ZipArchive
[7229] Fix | Delete
*
[7230] Fix | Delete
* @param string $dir target dir
[7231] Fix | Delete
* @param array $files files names list
[7232] Fix | Delete
* @param string|object $zipPath Zip archive name
[7233] Fix | Delete
*
[7234] Fix | Delete
* @return bool
[7235] Fix | Delete
* @author Naoki Sawada
[7236] Fix | Delete
*/
[7237] Fix | Delete
protected static function zipArchiveZip($dir, $files, $zipPath)
[7238] Fix | Delete
{
[7239] Fix | Delete
try {
[7240] Fix | Delete
if ($start = is_string($zipPath)) {
[7241] Fix | Delete
$zip = new ZipArchive();
[7242] Fix | Delete
if ($zip->open($dir . DIRECTORY_SEPARATOR . $zipPath, ZipArchive::CREATE) !== true) {
[7243] Fix | Delete
$zip = false;
[7244] Fix | Delete
}
[7245] Fix | Delete
} else {
[7246] Fix | Delete
$zip = $zipPath;
[7247] Fix | Delete
}
[7248] Fix | Delete
if ($zip) {
[7249] Fix | Delete
foreach ($files as $file) {
[7250] Fix | Delete
$path = $dir . DIRECTORY_SEPARATOR . $file;
[7251] Fix | Delete
if (is_dir($path)) {
[7252] Fix | Delete
$zip->addEmptyDir($file);
[7253] Fix | Delete
$_files = array();
[7254] Fix | Delete
if ($handle = opendir($path)) {
[7255] Fix | Delete
while (false !== ($entry = readdir($handle))) {
[7256] Fix | Delete
if ($entry !== "." && $entry !== "..") {
[7257] Fix | Delete
$_files[] = $file . DIRECTORY_SEPARATOR . $entry;
[7258] Fix | Delete
}
[7259] Fix | Delete
}
[7260] Fix | Delete
closedir($handle);
[7261] Fix | Delete
}
[7262] Fix | Delete
if ($_files) {
[7263] Fix | Delete
self::zipArchiveZip($dir, $_files, $zip);
[7264] Fix | Delete
}
[7265] Fix | Delete
} else {
[7266] Fix | Delete
$zip->addFile($path, $file);
[7267] Fix | Delete
}
[7268] Fix | Delete
}
[7269] Fix | Delete
$start && $zip->close();
[7270] Fix | Delete
}
[7271] Fix | Delete
} catch (Exception $e) {
[7272] Fix | Delete
return false;
[7273] Fix | Delete
}
[7274] Fix | Delete
return true;
[7275] Fix | Delete
}
[7276] Fix | Delete
[7277] Fix | Delete
/**
[7278] Fix | Delete
* Unpack Zip archive using PHP class ZipArchive
[7279] Fix | Delete
*
[7280] Fix | Delete
* @param string $zipPath Zip archive name
[7281] Fix | Delete
* @param string $toDir Extract to path
[7282] Fix | Delete
*
[7283] Fix | Delete
* @return bool
[7284] Fix | Delete
* @author Naoki Sawada
[7285] Fix | Delete
*/
[7286] Fix | Delete
protected static function zipArchiveUnzip($zipPath, $toDir)
[7287] Fix | Delete
{
[7288] Fix | Delete
try {
[7289] Fix | Delete
$zip = new ZipArchive();
[7290] Fix | Delete
if ($zip->open($zipPath) === true) {
[7291] Fix | Delete
// Check total file size after extraction
[7292] Fix | Delete
$num = $zip->numFiles;
[7293] Fix | Delete
$size = 0;
[7294] Fix | Delete
$maxSize = empty(self::$maxArcFilesSize)? '' : (string)self::$maxArcFilesSize;
[7295] Fix | Delete
$comp = function_exists('bccomp')? 'bccomp' : 'strnatcmp';
[7296] Fix | Delete
for ($i = 0; $i < $num; $i++) {
[7297] Fix | Delete
$stat = $zip->statIndex($i);
[7298] Fix | Delete
$size += $stat['size'];
[7299] Fix | Delete
if (strpos((string)$size, 'E') !== false) {
[7300] Fix | Delete
// Cannot handle values exceeding PHP_INT_MAX
[7301] Fix | Delete
throw new Exception(elFinder::ERROR_ARC_MAXSIZE);
[7302] Fix | Delete
}
[7303] Fix | Delete
if (!$maxSize) {
[7304] Fix | Delete
if ($comp($size, $maxSize) > 0) {
[7305] Fix | Delete
throw new Exception(elFinder::ERROR_ARC_MAXSIZE);
[7306] Fix | Delete
}
[7307] Fix | Delete
}
[7308] Fix | Delete
}
[7309] Fix | Delete
// do extract
[7310] Fix | Delete
$zip->extractTo($toDir);
[7311] Fix | Delete
$zip->close();
[7312] Fix | Delete
}
[7313] Fix | Delete
} catch (Exception $e) {
[7314] Fix | Delete
throw $e;
[7315] Fix | Delete
}
[7316] Fix | Delete
return true;
[7317] Fix | Delete
}
[7318] Fix | Delete
[7319] Fix | Delete
/**
[7320] Fix | Delete
* Recursive symlinks search
[7321] Fix | Delete
*
[7322] Fix | Delete
* @param string $path file/dir path
[7323] Fix | Delete
*
[7324] Fix | Delete
* @return bool
[7325] Fix | Delete
* @throws Exception
[7326] Fix | Delete
* @author Dmitry (dio) Levashov
[7327] Fix | Delete
*/
[7328] Fix | Delete
protected static function localFindSymlinks($path)
[7329] Fix | Delete
{
[7330] Fix | Delete
if (is_link($path)) {
[7331] Fix | Delete
return true;
[7332] Fix | Delete
}
[7333] Fix | Delete
[7334] Fix | Delete
if (is_dir($path)) {
[7335] Fix | Delete
foreach (self::localScandir($path) as $name) {
[7336] Fix | Delete
$p = $path . DIRECTORY_SEPARATOR . $name;
[7337] Fix | Delete
if (is_link($p)) {
[7338] Fix | Delete
return true;
[7339] Fix | Delete
}
[7340] Fix | Delete
if (is_dir($p) && self::localFindSymlinks($p)) {
[7341] Fix | Delete
return true;
[7342] Fix | Delete
}
[7343] Fix | Delete
}
[7344] Fix | Delete
}
[7345] Fix | Delete
[7346] Fix | Delete
return false;
[7347] Fix | Delete
}
[7348] Fix | Delete
[7349] Fix | Delete
/**==================================* abstract methods *====================================**/
[7350] Fix | Delete
[7351] Fix | Delete
/*********************** paths/urls *************************/
[7352] Fix | Delete
[7353] Fix | Delete
/**
[7354] Fix | Delete
* Return parent directory path
[7355] Fix | Delete
*
[7356] Fix | Delete
* @param string $path file path
[7357] Fix | Delete
*
[7358] Fix | Delete
* @return string
[7359] Fix | Delete
* @author Dmitry (dio) Levashov
[7360] Fix | Delete
**/
[7361] Fix | Delete
abstract protected function _dirname($path);
[7362] Fix | Delete
[7363] Fix | Delete
/**
[7364] Fix | Delete
* Return file name
[7365] Fix | Delete
*
[7366] Fix | Delete
* @param string $path file path
[7367] Fix | Delete
*
[7368] Fix | Delete
* @return string
[7369] Fix | Delete
* @author Dmitry (dio) Levashov
[7370] Fix | Delete
**/
[7371] Fix | Delete
abstract protected function _basename($path);
[7372] Fix | Delete
[7373] Fix | Delete
/**
[7374] Fix | Delete
* Join dir name and file name and return full path.
[7375] Fix | Delete
* Some drivers (db) use int as path - so we give to concat path to driver itself
[7376] Fix | Delete
*
[7377] Fix | Delete
* @param string $dir dir path
[7378] Fix | Delete
* @param string $name file name
[7379] Fix | Delete
*
[7380] Fix | Delete
* @return string
[7381] Fix | Delete
* @author Dmitry (dio) Levashov
[7382] Fix | Delete
**/
[7383] Fix | Delete
abstract protected function _joinPath($dir, $name);
[7384] Fix | Delete
[7385] Fix | Delete
/**
[7386] Fix | Delete
* Return normalized path
[7387] Fix | Delete
*
[7388] Fix | Delete
* @param string $path file path
[7389] Fix | Delete
*
[7390] Fix | Delete
* @return string
[7391] Fix | Delete
* @author Dmitry (dio) Levashov
[7392] Fix | Delete
**/
[7393] Fix | Delete
abstract protected function _normpath($path);
[7394] Fix | Delete
[7395] Fix | Delete
/**
[7396] Fix | Delete
* Return file path related to root dir
[7397] Fix | Delete
*
[7398] Fix | Delete
* @param string $path file path
[7399] Fix | Delete
*
[7400] Fix | Delete
* @return string
[7401] Fix | Delete
* @author Dmitry (dio) Levashov
[7402] Fix | Delete
**/
[7403] Fix | Delete
abstract protected function _relpath($path);
[7404] Fix | Delete
[7405] Fix | Delete
/**
[7406] Fix | Delete
* Convert path related to root dir into real path
[7407] Fix | Delete
*
[7408] Fix | Delete
* @param string $path rel file path
[7409] Fix | Delete
*
[7410] Fix | Delete
* @return string
[7411] Fix | Delete
* @author Dmitry (dio) Levashov
[7412] Fix | Delete
**/
[7413] Fix | Delete
abstract protected function _abspath($path);
[7414] Fix | Delete
[7415] Fix | Delete
/**
[7416] Fix | Delete
* Return fake path started from root dir.
[7417] Fix | Delete
* Required to show path on client side.
[7418] Fix | Delete
*
[7419] Fix | Delete
* @param string $path file path
[7420] Fix | Delete
*
[7421] Fix | Delete
* @return string
[7422] Fix | Delete
* @author Dmitry (dio) Levashov
[7423] Fix | Delete
**/
[7424] Fix | Delete
abstract protected function _path($path);
[7425] Fix | Delete
[7426] Fix | Delete
/**
[7427] Fix | Delete
* Return true if $path is children of $parent
[7428] Fix | Delete
*
[7429] Fix | Delete
* @param string $path path to check
[7430] Fix | Delete
* @param string $parent parent path
[7431] Fix | Delete
*
[7432] Fix | Delete
* @return bool
[7433] Fix | Delete
* @author Dmitry (dio) Levashov
[7434] Fix | Delete
**/
[7435] Fix | Delete
abstract protected function _inpath($path, $parent);
[7436] Fix | Delete
[7437] Fix | Delete
/**
[7438] Fix | Delete
* Return stat for given path.
[7439] Fix | Delete
* Stat contains following fields:
[7440] Fix | Delete
* - (int) size file size in b. required
[7441] Fix | Delete
* - (int) ts file modification time in unix time. required
[7442] Fix | Delete
* - (string) mime mimetype. required for folders, others - optionally
[7443] Fix | Delete
* - (bool) read read permissions. required
[7444] Fix | Delete
* - (bool) write write permissions. required
[7445] Fix | Delete
* - (bool) locked is object locked. optionally
[7446] Fix | Delete
* - (bool) hidden is object hidden. optionally
[7447] Fix | Delete
* - (string) alias for symlinks - link target path relative to root path. optionally
[7448] Fix | Delete
* - (string) target for symlinks - link target path. optionally
[7449] Fix | Delete
* If file does not exists - returns empty array or false.
[7450] Fix | Delete
*
[7451] Fix | Delete
* @param string $path file path
[7452] Fix | Delete
*
[7453] Fix | Delete
* @return array|false
[7454] Fix | Delete
* @author Dmitry (dio) Levashov
[7455] Fix | Delete
**/
[7456] Fix | Delete
abstract protected function _stat($path);
[7457] Fix | Delete
[7458] Fix | Delete
[7459] Fix | Delete
/***************** file stat ********************/
[7460] Fix | Delete
[7461] Fix | Delete
[7462] Fix | Delete
/**
[7463] Fix | Delete
* Return true if path is dir and has at least one childs directory
[7464] Fix | Delete
*
[7465] Fix | Delete
* @param string $path dir path
[7466] Fix | Delete
*
[7467] Fix | Delete
* @return bool
[7468] Fix | Delete
* @author Dmitry (dio) Levashov
[7469] Fix | Delete
**/
[7470] Fix | Delete
abstract protected function _subdirs($path);
[7471] Fix | Delete
[7472] Fix | Delete
/**
[7473] Fix | Delete
* Return object width and height
[7474] Fix | Delete
* Ususaly used for images, but can be realize for video etc...
[7475] Fix | Delete
*
[7476] Fix | Delete
* @param string $path file path
[7477] Fix | Delete
* @param string $mime file mime type
[7478] Fix | Delete
*
[7479] Fix | Delete
* @return string
[7480] Fix | Delete
* @author Dmitry (dio) Levashov
[7481] Fix | Delete
**/
[7482] Fix | Delete
abstract protected function _dimensions($path, $mime);
[7483] Fix | Delete
[7484] Fix | Delete
/******************** file/dir content *********************/
[7485] Fix | Delete
[7486] Fix | Delete
/**
[7487] Fix | Delete
* Return files list in directory
[7488] Fix | Delete
*
[7489] Fix | Delete
* @param string $path dir path
[7490] Fix | Delete
*
[7491] Fix | Delete
* @return array
[7492] Fix | Delete
* @author Dmitry (dio) Levashov
[7493] Fix | Delete
**/
[7494] Fix | Delete
abstract protected function _scandir($path);
[7495] Fix | Delete
[7496] Fix | Delete
/**
[7497] Fix | Delete
* Open file and return file pointer
[7498] Fix | Delete
*
[7499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function