Linux puskom-ProLiant-DL385-Gen10 5.4.0-150-generic #167~18.04.1-Ubuntu SMP Wed May 24 00:51:42 UTC 2023 x86_64
/
home
/
puskom
/
mastur
/
backwpup
/
inc
/
//home/puskom/mastur/backwpup/inc/functions.php
<?php /** * Template Function. * * @since 3.5.0 * * @param object $bind the object to use within the view * @param string $file_path the path of the file to include */ function backwpup_template($bind, $file_path) { $file_path = \BackWPup_Sanitize_Path::sanitize_path_regexp($file_path); if (!$file_path) { throw new \InvalidArgumentException( sprintf( 'Invalid or malformed file path %s: for template function.', $file_path ) ); } // Build the path. $path = untrailingslashit(BackWPup::get_plugin_data('plugindir')) . '/views/' . ltrim($file_path, '\\/'); if (!file_exists($path)) { throw new \InvalidArgumentException( sprintf( 'Cannot locate the template %s in template function.', $path ) ); } include $path; } /** * Convert String To Boolean. * * @since 3.5.0 * * @param string|int $value The string to convert to boolean. 'yes', 1, 'true', '1' are converted to true. * * @return bool true or false depending on the passed value */ function backwpup_string_to_bool($value) { return is_bool($value) ? $value : ('yes' === $value || 1 === $value || 'true' === $value || '1' === $value || 'on' === $value); } /** * Convert Boolean to String. * * @since 3.5.0 * * @param bool $bool the bool value to convert * * @return string The converted value. 'yes' or 'no'. */ function backwpup_bool_to_string($bool) { if (!is_bool($bool)) { $bool = backwpup_string_to_bool($bool); } return true === $bool ? 'yes' : 'no'; } /** * Is JSON. * * Check if a string is a valid json or not. * * @see https://codepad.co/snippet/jHa0m4DB * @since 3.5.0 * * @param string $data the json string * * @return bool True if the string is a json, false otherwise */ function backwpup_is_json($data) { if (!is_string($data) || !trim($data)) { return false; } return ( // Maybe an empty string, array or object. $data === '""' || $data === '[]' || $data === '{}' || $data[0] === '"' // Maybe an encoded JSON string. || $data[0] === '[' // Maybe a flat array. || $data[0] === '{' // Maybe an associative array. ) && json_decode($data) !== null; } /** * Clean JSON from request. * * @since 3.5.0 * * @param string $json the json * * @return string The cleaned json string */ function backwpup_clean_json_from_request($json) { // Remove slashes added by WordPress. $slashed_json = wp_unslash($json); if (backwpup_is_json($slashed_json)) { // phpcs:ignore $json = filter_var($slashed_json, FILTER_SANITIZE_STRING); $json = html_entity_decode($json); } return $json; } /** * Retrieve the instance of the Filesystem used by WordPress. * * @since 3.5.0 * * @return mixed an instance of WP_Filesystem_* depending on the method set */ function backwpup_wpfilesystem() { global $wp_filesystem; if (!$wp_filesystem) { // Make sure the WP_Filesystem function exists. if (!function_exists('WP_Filesystem')) { require_once untrailingslashit(ABSPATH) . '/wp-admin/includes/file.php'; } WP_Filesystem(); } return $wp_filesystem; } /** * Get WPDB Instance. * * With this function you get the global $wpdb instance of the class * * @since 3.5.0 * * @return wpdb The instance of the class */ function backwpup_wpdb() { global $wpdb; return $wpdb; } /** * Remove Invalid Characters from Directory Name. * * @since 3.5.0 * * @param string $directory the directory path * * @return string The cleaned directory path */ function remove_invalid_characters_from_directory_name($directory) { return str_replace( [ '?', '[', ']', '\\', '=', '<', '>', ':', ';', ',', "'", '"', '&', '$', '#', '*', '(', ')', '|', '~', '`', '!', '{', '}', chr(0), ], '', $directory ); } /** * Escapes a URL, adding https by default if protocol is not specified. * * @param string $url The URL to escape * @param array|null $protocols A list of allowed protocols * * @return string The escaped URL */ function backwpup_esc_url_default_secure($url, $protocols = null) { // Add https to protocols if not present if (is_array($protocols) && !in_array('https', $protocols)) { $protocols[] = 'https'; } $escaped_url = esc_url_raw($url, $protocols); if (empty($escaped_url)) { return $escaped_url; } // We must check for both http: and http; // because esc_url_raw() corrects http; to http: automatically. // so if we do not check for it in the original, we could have invalid results. if (!preg_match('/http[:;]/', $url) && strpos($escaped_url, 'http://') === 0) { $escaped_url = preg_replace('/^http:/', 'https:', $escaped_url); } return $escaped_url; }