Current Path : /var/www/html/afc2023/wp-content/plugins/duplicator/installer/build/classes/utilities/ |
Current File : /var/www/html/afc2023/wp-content/plugins/duplicator/installer/build/classes/utilities/class.u.php |
<?php /** * Various Static Utility methods for working with the installer * * Standard: PSR-2 * @link http://www.php-fig.org/psr/psr-2 Full Documentation * * @package SC\DUPX\U * */ class DUPX_U { /** * Adds a slash to the end of a file or directory path * * @param string $path A path * * @return string The original $path with a with '/' added to the end. */ public static function addSlash($path) { $last_char = substr($path, strlen($path) - 1, 1); if ($last_char != '/') { $path .= '/'; } return $path; } /** * Return a string with the elapsed time * * @see getMicrotime() * * @param mixed number $end The final time in the sequence to measure * @param mixed number $start The start time in the sequence to measure * * @return string The time elapsed from $start to $end */ public static function elapsedTime($end, $start) { return sprintf("%.4f sec.", abs($end - $start)); } /** * Convert all applicable characters to HTML entities * * @param string $string String that needs conversion * @param bool $echo Echo or return as a variable * * @return string Escaped string. */ public static function escapeHTML($string = '', $echo = false) { $output = htmlentities($string, ENT_QUOTES, 'UTF-8'); if ($echo) { echo $output; } else { return $output; } } /** * Returns 256 spaces * * PHP_SAPI for fcgi requires a data flush of at least 256 * bytes every 40 seconds or else it forces a script halt * * @return string A series of 256 spaces ' ' */ public static function fcgiFlush() { echo(str_repeat(' ', 256)); @flush(); } /** * Get current microtime as a float. Method is used for simple profiling * * @see elapsedTime * * @return string A float in the form "msec sec", where sec is the number of seconds since the Unix epoch */ public static function getMicrotime() { return microtime(true); } /** * Returns the active plugins for the WordPress website in the package * * @param obj $dbh A database connection handle * * @return array $list A list of active plugins */ public static function getActivePlugins($dbh) { $query = @mysqli_query($dbh, "SELECT option_value FROM `{$GLOBALS['FW_TABLEPREFIX']}options` WHERE option_name = 'active_plugins' "); if ($query) { $row = @mysqli_fetch_array($query); $all_plugins = unserialize($row[0]); if (is_array($all_plugins)) { return $all_plugins; } } return array(); } /** * Check to see if the internet is accessible * * Note: fsocketopen on windows doesn't seem to honor $timeout setting. * * @param string $url A url e.g without prefix "ajax.googleapis.com" * @param string $port A valid port number * * @return bool Returns true PHP can request the URL */ public static function isURLActive($url, $port, $timeout = 5) { if (function_exists('fsockopen')) { @ini_set("default_socket_timeout", 5); $port = isset($port) && is_integer($port) ? $port : 80; $connected = @fsockopen($url, $port, $errno, $errstr, $timeout); //website and port if ($connected) { @fclose($connected); return true; } return false; } else { return false; } } /** * Does a string have non ascii characters * * @param string $string Any string blob * * @return bool Returns true if any non ascii character is found in the blob */ public static function isNonASCII($string) { return preg_match('/[^\x20-\x7f]/', $string); } /** * Is the string JSON * * @param string $string Any string blob * * @return bool Returns true if the string is JSON encoded */ public static function isJSON($string) { return is_string($string) && is_array(json_decode($string, true)) ? true : false; } /** * The characters that are special in the replacement value of preg_replace are not the * same characters that are special in the pattern. Allows for '$' to be safely passed. * * @param string $str The string to replace on public static function pregSpecialChars($str) { return preg_replace('/(\$|\\\\)(?=\d)/', '\\\\\1', $str); } * */ /** * Display human readable byte sizes * * @param string $size The size in bytes * * @return string Human readable bytes such as 50MB, 1GB */ public static function readableByteSize($size) { try { $units = array('B', 'KB', 'MB', 'GB', 'TB'); for ($i = 0; $size >= 1024 && $i < 4; $i++) $size /= 1024; return round($size, 2).$units[$i]; } catch (Exception $e) { return "n/a"; } } /** * Converts shorthand memory notation value to bytes * * @param $val Memory size shorthand notation string such as 10M, 1G * * @returns int The byte representation of the shorthand $val */ public static function getBytes($val) { $val = trim($val); $last = strtolower($val[strlen($val) - 1]); switch ($last) { // The 'G' modifier is available since PHP 5.1.0 case 'g': $val *= 1024; case 'm': $val *= 1024; case 'k': $val *= 1024; break; default : $val = null; } return $val; } /** * Makes path safe for any OS for PHP * * Paths should ALWAYS READ be "/" * uni: /home/path/file.txt * win: D:/home/path/file.txt * * @param string $path The path to make safe * * @return string The original $path with a with all slashes facing '/'. */ public static function setSafePath($path) { return str_replace("\\", "/", $path); } /** * Looks for a list of strings in a string and returns each list item that is found * * @param array $list An array of strings to search for * @param string $haystack The string blob to search through * * @return array An array of strings from the $list array found in the $haystack */ public static function getListValues($list, $haystack) { $found = array(); foreach ($list as $var) { if (strstr($haystack, $var) !== false) { array_push($found, $var); } } return $found; } /** * Makes path unsafe for any OS for PHP used primarily to show default * Windows OS path standard * * @param string $path The path to make unsafe * * @return string The original $path with a with all slashes facing '\'. */ public static function unsetSafePath($path) { return str_replace("/", "\\", $path); } /** * Sanitize input for XSS code * * @param string $val The value to sanitize * * @return string Returns the input value cleaned up. */ public static function sanitize($input) { return filter_var($input, FILTER_SANITIZE_STRING); } /** * Filter the string to escape the quote * * @param string $val The value to escape quote * * @return string Returns the input value escaped */ public static function safeQuote($val) { $val = addslashes($val); return $val; } /** * Check PHP version * * @param string $version PHP version we looking for * * @return boolean Returns true if version is same or above. */ public static function isVersion($version) { return (version_compare(PHP_VERSION, $version) >= 0); } } ?>