Server IP : 172.67.158.161 / Your IP : 18.217.183.10 Web Server : LiteSpeed System : Linux business53.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : giankuin ( 1871) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/proc/self/cwd/wp-content/plugins/duplicator-pro/classes/utilities/ |
Upload File : |
<?php defined("ABSPATH") or die(""); /** * Wordpress utility functions * * Standard: PSR-2 * @link http://www.php-fig.org/psr/psr-2 * * @package DUP_PRO * @subpackage classes/utilities * @copyright (c) 2017, Snapcreek LLC * @license https://opensource.org/licenses/GPL-3.0 GNU Public License * @since 3.8.1 * */ /** * Wordpress utility functions */ class DUP_PRO_WP_U { const PATH_FULL = 0; const PATH_RELATIVE = 1; const PATH_AUTO = 2; private static $corePathList = null; private static $safeAbsPath = null; /** * return safe ABSPATH without last / * perform safe function only one time * * @return string */ public static function getSafeAbsPath() { if (is_null(self::$safeAbsPath)) { self::$safeAbsPath = DupProSnapLibIOU::normalize_path(ABSPATH); } return self::$safeAbsPath; } /** * check if path is in wordpress core list * * @param string $path * @param int $fullPath // if PATH_AUTO check if is a full path or relative path * if PATH_FULL remove ABSPATH len without check * if PATH_RELATIVE consider path a relative path * @param bool $isSafe // if false call rtrim(DupProSnapLibIOU::safePath( PATH ), '/') * if true consider path a safe path without check * * PATH_FULL and PATH_RELATIVE is better optimized and perform less operations * * @return boolean */ public static function isWpCore($path, $fullPath = self::PATH_AUTO, $isSafe = false) { if ($isSafe == false) { $path = rtrim(DupProSnapLibIOU::safePath($path), '/'); } switch ($fullPath) { case self::PATH_FULL: $absPath = self::getSafeAbsPath(); if (strlen($path) < strlen($absPath)) { return false; } $relPath = ltrim(substr($path, strlen($absPath)), '/'); break; case self::PATH_RELATIVE: $relPath = ltrim($path, '/'); break; case self::PATH_AUTO: default: $absPath = self::getSafeAbsPath(); if (strpos($path, $absPath) === 0) { $relPath = ltrim(substr($path, strlen($absPath)), '/'); } else { $relPath = ltrim($path, '/'); } } // if rel path is empty is consider root path so is a core folder. if (empty($relPath)) { return true; } $pExploded = explode('/', $relPath); $corePaths = self::getCorePathsList(); foreach ($pExploded as $current) { if (!isset($corePaths[$current])) { return false; } $corePaths = $corePaths[$current]; } return true; } /** * get core path list from relative abs path * [ * 'folder' => [ * 's-folder1' => [ * file1 => [], * file2 => [], * ], * 's-folder2' => [], * file1 => [] * ] * ] * * @return array */ public static function getCorePathsList() { if (is_null(self::$corePathList)) { require_once(DUPLICATOR_PRO_PLUGIN_PATH.'/classes/utilities/wordpress.core.files.php'); } return self::$corePathList; } }