Released under the terms of the GNU General Public License. You should have received a copy of the GNU General Public License, along with this software. In the main directory, see: /licensing/ If not, see: . */ /* Direct access denial. */ if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"])) exit ("Do not access this file directly."); /**/ if (!class_exists ("c_ws_widget__ad_squares_utils_urls")) { class c_ws_widget__ad_squares_utils_urls { /* Function that handles a remote request. This extends wp_remote_request() through the `WP_Http` class. */ public static function remote ($url = FALSE, $post_vars = FALSE, $args = array ()) { static $http_response_filtered = false; /* Filter once. */ /**/ $args = (!is_array ($args)) ? array (): $args; /**/ if (!$http_response_filtered && ($http_response_filtered = true)) add_filter ("http_response", "c_ws_widget__ad_squares_utils_urls::_remote_gz_variations"); /**/ if ($url) /* Obviously, we must have a URL to do anything. */ { if (preg_match ("/^https/i", $url) && strtolower (substr (PHP_OS, 0, 3)) === "win") add_filter ("use_curl_transport", "__return_false"); /**/ if ((is_array ($post_vars) || is_string ($post_vars)) && !empty ($post_vars)) { $args["method"] = "POST"; $args["body"] = $post_vars; } /**/ $body = wp_remote_retrieve_body (wp_remote_request ($url, $args)); /**/ remove_filter ("use_curl_transport", "__return_false"); /**/ return $body; /* The body content received. */ } /**/ return false; } /* A sort of callback function that filters the WP_Http response for additional gzinflate variations. Attach to: add_filter("http_response"); */ public static function _remote_gz_variations ($response = array ()) { if (!isset ($response["ws__gz_variations"]) && ($response["ws__gz_variations"] = 1)) { if ($response["headers"]["content-encoding"]) if (substr ($response["body"], 0, 2) === "\x78\x9c") if (($gz = @gzinflate (substr ($response["body"], 2)))) $response["body"] = $gz; } /**/ return $response; } } } ?>