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: elFinderVolumeFTP.class.php
$_stat = false;
[1500] Fix | Delete
} else {
[1501] Fix | Delete
$dstDir = $target;
[1502] Fix | Delete
}
[1503] Fix | Delete
}
[1504] Fix | Delete
if (!$_stat && (!$dstDir = $this->_mkdir($dstDir, $name))) {
[1505] Fix | Delete
$this->rmdirRecursive($dir);
[1506] Fix | Delete
return false;
[1507] Fix | Delete
}
[1508] Fix | Delete
$result[] = $dstDir;
[1509] Fix | Delete
}
[1510] Fix | Delete
foreach ($filesToProcess as $name) {
[1511] Fix | Delete
$name = rtrim($name, DIRECTORY_SEPARATOR);
[1512] Fix | Delete
$src = $dir . DIRECTORY_SEPARATOR . $name;
[1513] Fix | Delete
if (is_dir($src)) {
[1514] Fix | Delete
$p = dirname($name);
[1515] Fix | Delete
if ($p === '.') {
[1516] Fix | Delete
$p = '';
[1517] Fix | Delete
}
[1518] Fix | Delete
$name = basename($name);
[1519] Fix | Delete
$target = $this->_joinPath($this->_joinPath($dstDir, $p), $name);
[1520] Fix | Delete
$_stat = $this->_stat($target);
[1521] Fix | Delete
if ($_stat) {
[1522] Fix | Delete
if (!$this->options['copyJoin']) {
[1523] Fix | Delete
if ($_stat['mime'] === 'directory') {
[1524] Fix | Delete
$this->delTree($target);
[1525] Fix | Delete
} else {
[1526] Fix | Delete
$this->_unlink($target);
[1527] Fix | Delete
}
[1528] Fix | Delete
$_stat = false;
[1529] Fix | Delete
}
[1530] Fix | Delete
}
[1531] Fix | Delete
if (!$_stat && (!$target = $this->_mkdir($this->_joinPath($dstDir, $p), $name))) {
[1532] Fix | Delete
$this->rmdirRecursive($dir);
[1533] Fix | Delete
return false;
[1534] Fix | Delete
}
[1535] Fix | Delete
} else {
[1536] Fix | Delete
$target = $this->_joinPath($dstDir, $name);
[1537] Fix | Delete
if (!ftp_put($this->connect, $target, $src, FTP_BINARY)) {
[1538] Fix | Delete
$this->rmdirRecursive($dir);
[1539] Fix | Delete
return false;
[1540] Fix | Delete
}
[1541] Fix | Delete
}
[1542] Fix | Delete
$result[] = $target;
[1543] Fix | Delete
}
[1544] Fix | Delete
if (!$result) {
[1545] Fix | Delete
$this->rmdirRecursive($dir);
[1546] Fix | Delete
return false;
[1547] Fix | Delete
}
[1548] Fix | Delete
}
[1549] Fix | Delete
[1550] Fix | Delete
is_dir($dir) && $this->rmdirRecursive($dir);
[1551] Fix | Delete
[1552] Fix | Delete
$this->clearcache();
[1553] Fix | Delete
return $result ? $result : false;
[1554] Fix | Delete
}
[1555] Fix | Delete
[1556] Fix | Delete
/**
[1557] Fix | Delete
* Create archive and return its path
[1558] Fix | Delete
*
[1559] Fix | Delete
* @param string $dir target dir
[1560] Fix | Delete
* @param array $files files names list
[1561] Fix | Delete
* @param string $name archive name
[1562] Fix | Delete
* @param array $arc archiver options
[1563] Fix | Delete
*
[1564] Fix | Delete
* @return string|bool
[1565] Fix | Delete
* @throws elFinderAbortException
[1566] Fix | Delete
* @author Dmitry (dio) Levashov,
[1567] Fix | Delete
* @author Alexey Sukhotin
[1568] Fix | Delete
*/
[1569] Fix | Delete
protected function _archive($dir, $files, $name, $arc)
[1570] Fix | Delete
{
[1571] Fix | Delete
// get current directory
[1572] Fix | Delete
$cwd = getcwd();
[1573] Fix | Delete
[1574] Fix | Delete
$tmpDir = $this->tempDir();
[1575] Fix | Delete
if (!$tmpDir) {
[1576] Fix | Delete
return false;
[1577] Fix | Delete
}
[1578] Fix | Delete
[1579] Fix | Delete
//download data
[1580] Fix | Delete
if (!$this->ftp_download_files($dir, $files, $tmpDir)) {
[1581] Fix | Delete
//cleanup
[1582] Fix | Delete
$this->rmdirRecursive($tmpDir);
[1583] Fix | Delete
return false;
[1584] Fix | Delete
}
[1585] Fix | Delete
[1586] Fix | Delete
$remoteArchiveFile = false;
[1587] Fix | Delete
if ($path = $this->makeArchive($tmpDir, $files, $name, $arc)) {
[1588] Fix | Delete
$remoteArchiveFile = $this->_joinPath($dir, $name);
[1589] Fix | Delete
if (!ftp_put($this->connect, $remoteArchiveFile, $path, FTP_BINARY)) {
[1590] Fix | Delete
$remoteArchiveFile = false;
[1591] Fix | Delete
}
[1592] Fix | Delete
}
[1593] Fix | Delete
[1594] Fix | Delete
//cleanup
[1595] Fix | Delete
if (!$this->rmdirRecursive($tmpDir)) {
[1596] Fix | Delete
return false;
[1597] Fix | Delete
}
[1598] Fix | Delete
[1599] Fix | Delete
return $remoteArchiveFile;
[1600] Fix | Delete
}
[1601] Fix | Delete
[1602] Fix | Delete
/**
[1603] Fix | Delete
* Create writable temporary directory and return path to it.
[1604] Fix | Delete
*
[1605] Fix | Delete
* @return string path to the new temporary directory or false in case of error.
[1606] Fix | Delete
*/
[1607] Fix | Delete
private function tempDir()
[1608] Fix | Delete
{
[1609] Fix | Delete
$tempPath = tempnam($this->tmp, 'elFinder');
[1610] Fix | Delete
if (!$tempPath) {
[1611] Fix | Delete
$this->setError(elFinder::ERROR_CREATING_TEMP_DIR, $this->tmp);
[1612] Fix | Delete
return false;
[1613] Fix | Delete
}
[1614] Fix | Delete
$success = unlink($tempPath);
[1615] Fix | Delete
if (!$success) {
[1616] Fix | Delete
$this->setError(elFinder::ERROR_CREATING_TEMP_DIR, $this->tmp);
[1617] Fix | Delete
return false;
[1618] Fix | Delete
}
[1619] Fix | Delete
$success = mkdir($tempPath, 0700, true);
[1620] Fix | Delete
if (!$success) {
[1621] Fix | Delete
$this->setError(elFinder::ERROR_CREATING_TEMP_DIR, $this->tmp);
[1622] Fix | Delete
return false;
[1623] Fix | Delete
}
[1624] Fix | Delete
return $tempPath;
[1625] Fix | Delete
}
[1626] Fix | Delete
[1627] Fix | Delete
/**
[1628] Fix | Delete
* Gets an array of absolute remote FTP paths of files and
[1629] Fix | Delete
* folders in $remote_directory omitting symbolic links.
[1630] Fix | Delete
*
[1631] Fix | Delete
* @param $remote_directory string remote FTP path to scan for file and folders recursively
[1632] Fix | Delete
* @param $targets array Array of target item. `null` is to get all of items
[1633] Fix | Delete
*
[1634] Fix | Delete
* @return array of elements each of which is an array of two elements:
[1635] Fix | Delete
* <ul>
[1636] Fix | Delete
* <li>$item['path'] - absolute remote FTP path</li>
[1637] Fix | Delete
* <li>$item['type'] - either 'f' for file or 'd' for directory</li>
[1638] Fix | Delete
* </ul>
[1639] Fix | Delete
*/
[1640] Fix | Delete
protected function ftp_scan_dir($remote_directory, $targets = null)
[1641] Fix | Delete
{
[1642] Fix | Delete
$buff = $this->ftpRawList($remote_directory);
[1643] Fix | Delete
$items = array();
[1644] Fix | Delete
if ($targets && is_array($targets)) {
[1645] Fix | Delete
$targets = array_flip($targets);
[1646] Fix | Delete
} else {
[1647] Fix | Delete
$targets = false;
[1648] Fix | Delete
}
[1649] Fix | Delete
foreach ($buff as $str) {
[1650] Fix | Delete
$info = preg_split("/\s+/", $str, 9);
[1651] Fix | Delete
if (!isset($this->ftpOsUnix)) {
[1652] Fix | Delete
$this->ftpOsUnix = !preg_match('/\d/', substr($info[0], 0, 1));
[1653] Fix | Delete
}
[1654] Fix | Delete
if (!$this->ftpOsUnix) {
[1655] Fix | Delete
$info = $this->normalizeRawWindows($str);
[1656] Fix | Delete
}
[1657] Fix | Delete
$type = substr($info[0], 0, 1);
[1658] Fix | Delete
$name = trim($info[8]);
[1659] Fix | Delete
if ($name !== '.' && $name !== '..' && (!$targets || isset($targets[$name]))) {
[1660] Fix | Delete
switch ($type) {
[1661] Fix | Delete
case 'l' : //omit symbolic links
[1662] Fix | Delete
case 'd' :
[1663] Fix | Delete
$remote_file_path = $this->_joinPath($remote_directory, $name);
[1664] Fix | Delete
$item = array();
[1665] Fix | Delete
$item['path'] = $remote_file_path;
[1666] Fix | Delete
$item['type'] = 'd'; // normal file
[1667] Fix | Delete
$items[] = $item;
[1668] Fix | Delete
$items = array_merge($items, $this->ftp_scan_dir($remote_file_path));
[1669] Fix | Delete
break;
[1670] Fix | Delete
default:
[1671] Fix | Delete
$remote_file_path = $this->_joinPath($remote_directory, $name);
[1672] Fix | Delete
$item = array();
[1673] Fix | Delete
$item['path'] = $remote_file_path;
[1674] Fix | Delete
$item['type'] = 'f'; // normal file
[1675] Fix | Delete
$items[] = $item;
[1676] Fix | Delete
}
[1677] Fix | Delete
}
[1678] Fix | Delete
}
[1679] Fix | Delete
return $items;
[1680] Fix | Delete
}
[1681] Fix | Delete
[1682] Fix | Delete
/**
[1683] Fix | Delete
* Downloads specified files from remote directory
[1684] Fix | Delete
* if there is a directory among files it is downloaded recursively (omitting symbolic links).
[1685] Fix | Delete
*
[1686] Fix | Delete
* @param $remote_directory string remote FTP path to a source directory to download from.
[1687] Fix | Delete
* @param array $files list of files to download from remote directory.
[1688] Fix | Delete
* @param $dest_local_directory string destination folder to store downloaded files.
[1689] Fix | Delete
*
[1690] Fix | Delete
* @return bool true on success and false on failure.
[1691] Fix | Delete
*/
[1692] Fix | Delete
private function ftp_download_files($remote_directory, array $files, $dest_local_directory)
[1693] Fix | Delete
{
[1694] Fix | Delete
$contents = $this->ftp_scan_dir($remote_directory, $files);
[1695] Fix | Delete
if (!isset($contents)) {
[1696] Fix | Delete
$this->setError(elFinder::ERROR_FTP_DOWNLOAD_FILE, $remote_directory);
[1697] Fix | Delete
return false;
[1698] Fix | Delete
}
[1699] Fix | Delete
$remoteDirLen = strlen($remote_directory);
[1700] Fix | Delete
foreach ($contents as $item) {
[1701] Fix | Delete
$relative_path = substr($item['path'], $remoteDirLen);
[1702] Fix | Delete
$local_path = $dest_local_directory . DIRECTORY_SEPARATOR . $relative_path;
[1703] Fix | Delete
switch ($item['type']) {
[1704] Fix | Delete
case 'd':
[1705] Fix | Delete
$success = mkdir($local_path);
[1706] Fix | Delete
break;
[1707] Fix | Delete
case 'f':
[1708] Fix | Delete
$success = ftp_get($this->connect, $local_path, $item['path'], FTP_BINARY);
[1709] Fix | Delete
break;
[1710] Fix | Delete
default:
[1711] Fix | Delete
$success = true;
[1712] Fix | Delete
}
[1713] Fix | Delete
if (!$success) {
[1714] Fix | Delete
$this->setError(elFinder::ERROR_FTP_DOWNLOAD_FILE, $remote_directory);
[1715] Fix | Delete
return false;
[1716] Fix | Delete
}
[1717] Fix | Delete
}
[1718] Fix | Delete
return true;
[1719] Fix | Delete
}
[1720] Fix | Delete
[1721] Fix | Delete
/**
[1722] Fix | Delete
* Delete local directory recursively.
[1723] Fix | Delete
*
[1724] Fix | Delete
* @param $dirPath string to directory to be erased.
[1725] Fix | Delete
*
[1726] Fix | Delete
* @return bool true on success and false on failure.
[1727] Fix | Delete
* @throws Exception
[1728] Fix | Delete
*/
[1729] Fix | Delete
private function deleteDir($dirPath)
[1730] Fix | Delete
{
[1731] Fix | Delete
if (!is_dir($dirPath)) {
[1732] Fix | Delete
$success = unlink($dirPath);
[1733] Fix | Delete
} else {
[1734] Fix | Delete
$success = true;
[1735] Fix | Delete
foreach (array_reverse(elFinderVolumeFTP::listFilesInDirectory($dirPath, false)) as $path) {
[1736] Fix | Delete
$path = $dirPath . DIRECTORY_SEPARATOR . $path;
[1737] Fix | Delete
if (is_link($path)) {
[1738] Fix | Delete
unlink($path);
[1739] Fix | Delete
} else if (is_dir($path)) {
[1740] Fix | Delete
$success = rmdir($path);
[1741] Fix | Delete
} else {
[1742] Fix | Delete
$success = unlink($path);
[1743] Fix | Delete
}
[1744] Fix | Delete
if (!$success) {
[1745] Fix | Delete
break;
[1746] Fix | Delete
}
[1747] Fix | Delete
}
[1748] Fix | Delete
if ($success) {
[1749] Fix | Delete
$success = rmdir($dirPath);
[1750] Fix | Delete
}
[1751] Fix | Delete
}
[1752] Fix | Delete
if (!$success) {
[1753] Fix | Delete
$this->setError(elFinder::ERROR_RM, $dirPath);
[1754] Fix | Delete
return false;
[1755] Fix | Delete
}
[1756] Fix | Delete
return $success;
[1757] Fix | Delete
}
[1758] Fix | Delete
[1759] Fix | Delete
/**
[1760] Fix | Delete
* Returns array of strings containing all files and folders in the specified local directory.
[1761] Fix | Delete
*
[1762] Fix | Delete
* @param $dir
[1763] Fix | Delete
* @param $omitSymlinks
[1764] Fix | Delete
* @param string $prefix
[1765] Fix | Delete
*
[1766] Fix | Delete
* @return array array of files and folders names relative to the $path
[1767] Fix | Delete
* or an empty array if the directory $path is empty,
[1768] Fix | Delete
* <br />
[1769] Fix | Delete
* false if $path is not a directory or does not exist.
[1770] Fix | Delete
* @throws Exception
[1771] Fix | Delete
* @internal param string $path path to directory to scan.
[1772] Fix | Delete
*/
[1773] Fix | Delete
private static function listFilesInDirectory($dir, $omitSymlinks, $prefix = '')
[1774] Fix | Delete
{
[1775] Fix | Delete
if (!is_dir($dir)) {
[1776] Fix | Delete
return false;
[1777] Fix | Delete
}
[1778] Fix | Delete
$excludes = array(".", "..");
[1779] Fix | Delete
$result = array();
[1780] Fix | Delete
$files = self::localScandir($dir);
[1781] Fix | Delete
if (!$files) {
[1782] Fix | Delete
return array();
[1783] Fix | Delete
}
[1784] Fix | Delete
foreach ($files as $file) {
[1785] Fix | Delete
if (!in_array($file, $excludes)) {
[1786] Fix | Delete
$path = $dir . DIRECTORY_SEPARATOR . $file;
[1787] Fix | Delete
if (is_link($path)) {
[1788] Fix | Delete
if ($omitSymlinks) {
[1789] Fix | Delete
continue;
[1790] Fix | Delete
} else {
[1791] Fix | Delete
$result[] = $prefix . $file;
[1792] Fix | Delete
}
[1793] Fix | Delete
} else if (is_dir($path)) {
[1794] Fix | Delete
$result[] = $prefix . $file . DIRECTORY_SEPARATOR;
[1795] Fix | Delete
$subs = elFinderVolumeFTP::listFilesInDirectory($path, $omitSymlinks, $prefix . $file . DIRECTORY_SEPARATOR);
[1796] Fix | Delete
if ($subs) {
[1797] Fix | Delete
$result = array_merge($result, $subs);
[1798] Fix | Delete
}
[1799] Fix | Delete
[1800] Fix | Delete
} else {
[1801] Fix | Delete
$result[] = $prefix . $file;
[1802] Fix | Delete
}
[1803] Fix | Delete
}
[1804] Fix | Delete
}
[1805] Fix | Delete
return $result;
[1806] Fix | Delete
}
[1807] Fix | Delete
[1808] Fix | Delete
} // END class
[1809] Fix | Delete
[1810] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function