Title: Urgent Fatal error ���������
Last modified: August 22, 2016

---

# Urgent Fatal error ���������

 *  Resolved [mdw](https://wordpress.org/support/users/yamaryam/)
 * (@yamaryam)
 * [11 years, 3 months ago](https://wordpress.org/support/topic/fatal-error-1571/)
 * ����������������������� all the way
 * even after I deleted the zencache folder and the advanced-cache.php file I get
   this error:
 * Warning: require_once(/home/nameyourd/public_html/wp-content/plugins/zencache/
   includes/share.php): failed to open stream: No such file or directory in /home/
   nameyourd/public_html/wp-content/advanced-cache.php on line 140
 * Fatal error: require_once(): Failed opening required ‘/home/nameyourd/public_html/
   wp-content/plugins/zencache/includes/share.php’ (include_path=’.:/opt/alt/php54/
   usr/share/pear:/opt/alt/php54/usr/share/php’) in /home/nameyourd/public_html/
   wp-content/advanced-cache.php on line 140
 * Delete this file: /wp-content/advanced-cache.php = done
    Delete this directory:/
   wp-content/plugins/zencache/ = done Remove this line from your /wp-config.php
   file: define(‘WP_CACHE’, TRUE); = there wasn’t any but I put define(‘WP_CACHE’,
   FALSE);
 * there must be cache files somewhere, where can I flush them?
 * and if I reput your folder I get again the 1 error:
    ����������������������� 
   all the way
 * [https://wordpress.org/plugins/zencache/](https://wordpress.org/plugins/zencache/)

Viewing 3 replies - 1 through 3 (of 3 total)

 *  Thread Starter [mdw](https://wordpress.org/support/users/yamaryam/)
 * (@yamaryam)
 * [11 years, 3 months ago](https://wordpress.org/support/topic/fatal-error-1571/#post-5941766)
 *  Thread Starter [mdw](https://wordpress.org/support/users/yamaryam/)
 * (@yamaryam)
 * [11 years, 3 months ago](https://wordpress.org/support/topic/fatal-error-1571/#post-5941843)
 * Warning: include(/home/nameyourd/public_html/wp-content/advanced-cache.php): 
   failed to open stream: No such file or directory in /home/nameyourd/public_html/
   wp-settings.php on line 65
 * Warning: include(): Failed opening ‘/home/nameyourd/public_html/wp-content/advanced-
   cache.php’ for inclusion (include_path=’.:/opt/alt/php54/usr/share/pear:/opt/
   alt/php54/usr/share/php’) in /home/nameyourd/public_html/wp-settings.php on line
   65
    dle, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $handle, CURLOPT_SSL_VERIFYHOST,(
   $ssl_verify === true ) ? 2 : false ); curl_setopt( $handle, CURLOPT_SSL_VERIFYPEER,
   $ssl_verify ); curl_setopt( $handle, CURLOPT_CAINFO, $r[‘sslcertificates’] );
   curl_setopt( $handle, CURLOPT_USERAGENT, $r[‘user-agent’] ); /* * The option 
   doesn’t work with safe mode or when open_basedir is set, and there’s * a bug #
   17490 with redirected POST requests, so handle redirections outside Curl. */ 
   curl_setopt( $handle, CURLOPT_FOLLOWLOCATION, false ); if ( defined( ‘CURLOPT_PROTOCOLS’))//
   PHP 5.2.10 / cURL 7.19.4 curl_setopt( $handle, CURLOPT_PROTOCOLS, CURLPROTO_HTTP
   | CURLPROTO_HTTPS ); switch ( $r[‘method’] ) { case ‘HEAD’: curl_setopt( $handle,
   CURLOPT_NOBODY, true ); break; case ‘POST’: curl_setopt( $handle, CURLOPT_POST,
   true ); curl_setopt( $handle, CURLOPT_POSTFIELDS, $r[‘body’] ); break; case ‘
   PUT’: curl_setopt( $handle, CURLOPT_CUSTOMREQUEST, ‘PUT’ ); curl_setopt( $handle,
   CURLOPT_POSTFIELDS, $r[‘body’] ); break; default: curl_setopt( $handle, CURLOPT_CUSTOMREQUEST,
   $r[‘method’] ); if ( ! is_null( $r[‘body’] ) ) curl_setopt( $handle, CURLOPT_POSTFIELDS,
   $r[‘body’] ); break; } if ( true === $r[‘blocking’] ) { curl_setopt( $handle,
   CURLOPT_HEADERFUNCTION, array( $this, ‘stream_headers’ ) ); curl_setopt( $handle,
   CURLOPT_WRITEFUNCTION, array( $this, ‘stream_body’ ) ); } curl_setopt( $handle,
   CURLOPT_HEADER, false ); if ( isset( $r[‘limit_response_size’] ) ) $this->max_body_length
   = intval( $r[‘limit_response_size’] ); else $this->max_body_length = false; //
   If streaming to a file open a file handle, and setup our curl streaming handler.
   if ( $r[‘stream’] ) { if ( ! WP_DEBUG ) $this->stream_handle = @fopen( $r[‘filename’],‘
   w+’ ); else $this->stream_handle = fopen( $r[‘filename’], ‘w+’ ); if ( ! $this-
   >stream_handle ) return new WP_Error( ‘http_request_failed’, sprintf( __( ‘Could
   not open handle for fopen() to %s’ ), $r[‘filename’] ) ); } else { $this->stream_handle
   = false; } $r[‘headers’] = apply_filters(‘http_curl_headers’, $r[‘headers’]);//
   Added by WHMCS Integration if ( !empty( $r[‘headers’] ) ) { // cURL expects full
   header strings in each element. $headers = array(); foreach ( $r[‘headers’] as
   $name => $value ) { $headers[] = “{$name}: $value”; } curl_setopt( $handle, CURLOPT_HTTPHEADER,
   $headers ); } if ( $r[‘httpversion’] == ‘1.0’ ) curl_setopt( $handle, CURLOPT_HTTP_VERSION,
   CURL_HTTP_VERSION_1_0 ); else curl_setopt( $handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);/***
   Fires before the cURL request is executed. * * Cookies are not currently handled
   by the HTTP API. This action allows * plugins to handle cookies themselves. **
   [@since](https://wordpress.org/support/users/since/) 2.8.0 * * [@param](https://wordpress.org/support/users/param/)
   resource &$handle The cURL handle returned by curl_init(). * [@param](https://wordpress.org/support/users/param/)
   array $r The HTTP request arguments. * [@param](https://wordpress.org/support/users/param/)
   string $url The request URL. */ do_action_ref_array( ‘http_api_curl’, array( &
   $handle, $r, $url ) ); // We don’t need to return the body, so don’t. Just execute
   request and return. if ( ! $r[‘blocking’] ) { curl_exec( $handle ); if ( $curl_error
   = curl_error( $handle ) ) { curl_close( $handle ); return new WP_Error( ‘http_request_failed’,
   $curl_error ); } if ( in_array( curl_getinfo( $handle, CURLINFO_HTTP_CODE ), 
   array( 301, 302 ) ) ) { curl_close( $handle ); return new WP_Error( ‘http_request_failed’,
   __( ‘Too many redirects.’ ) ); } curl_close( $handle ); return array( ‘headers’
   => array(), ‘body’ => ”, ‘response’ => array(‘code’ => false, ‘message’ => false),‘
   cookies’ => array() ); } curl_exec( $handle ); $theHeaders = WP_Http::processHeaders(
   $this->headers, $url ); $theBody = $this->body; $bytes_written_total = $this-
   >bytes_written_total; $this->headers = ”; $this->body = ”; $this->bytes_written_total
   = 0; $curl_error = curl_errno( $handle ); // If an error occurred, or, no response.
   if ( $curl_error || ( 0 == strlen( $theBody ) && empty( $theHeaders[‘headers’]))){
   if ( CURLE_WRITE_ERROR /* 23 */ == $curl_error && $r[‘stream’] ) { if ( ! $this-
   >max_body_length || $this->max_body_length != $bytes_written_total ) { fclose(
   $this->stream_handle ); return new WP_Error( ‘http_request_failed’, __( ‘Failed
   to write request to temporary file.’ ) ); } } else { if ( $curl_error = curl_error(
   $handle ) ) { curl_close( $handle ); return new WP_Error( ‘http_request_failed’,
   $curl_error ); } } if ( in_array( curl_getinfo( $handle, CURLINFO_HTTP_CODE ),
   array( 301, 302 ) ) ) { curl_close( $handle ); return new WP_Error( ‘http_request_failed’,
   __( ‘Too many redirects.’ ) ); } } curl_close( $handle ); if ( $r[‘stream’] )
   fclose( $this->stream_handle ); $response = array( ‘headers’ => $theHeaders[‘
   headers’], ‘body’ => null, ‘response’ => $theHeaders[‘response’], ‘cookies’ =
   > $theHeaders[‘cookies’], ‘filename’ => $r[‘filename’] ); // Handle redirects.
   if( apply_filters(‘http_api_redirect’, true)){ //Added by WHMCS Integration if(
   false !== ( $redirect_response = WP_HTTP::handle_redirects( $url, $r, $response)))
   return $redirect_response; } if ( true === $r[‘decompress’] && true === WP_Http_Encoding::
   should_decode($theHeaders[‘headers’]) ) $theBody = WP_Http_Encoding::decompress(
   $theBody ); $response[‘body’] = $theBody; return $response; } /** * Grab the 
   headers of the cURL request * * Each header is sent individually to this callback,
   so we append to the $header property for temporary storage * * [@since](https://wordpress.org/support/users/since/)
   3.2.0 * [@access](https://wordpress.org/support/users/access/) private * [@return](https://wordpress.org/support/users/return/)
   int */ private function stream_headers( $handle, $headers ) { $this->headers .
   = $headers; return strlen( $headers ); } /** * Grab the body of the cURL request**
   The contents of the document are passed in chunks, so we append to the $body 
   property for temporary storage. * Returning a length shorter than the length 
   of $data passed in will cause cURL to abort the request with CURLE_WRITE_ERROR**
   [@since](https://wordpress.org/support/users/since/) 3.6.0 * [@access](https://wordpress.org/support/users/access/)
   private * [@return](https://wordpress.org/support/users/return/) int */ private
   function stream_body( $handle, $data ) { $data_length = strlen( $data ); if (
   $this->max_body_length && ( $this->bytes_written_total + $data_length ) > $this-
   >max_body_length ) { $data_length = ( $this->max_body_length – $this->bytes_written_total);
   $data = substr( $data, 0, $data_length ); } if ( $this->stream_handle ) { $bytes_written
   = fwrite( $this->stream_handle, $data ); } else { $this->body .= $data; $bytes_written
   = $data_length; } $this->bytes_written_total += $bytes_written; // Upon event
   of this function returning less than strlen( $data ) curl will error with CURLE_WRITE_ERROR.
   return $bytes_written; } /** * Whether this class can be used for retrieving 
   an URL. * * [@static](https://wordpress.org/support/users/static/) * [@since](https://wordpress.org/support/users/since/)
   2.7.0 * * [@return](https://wordpress.org/support/users/return/) boolean False
   means this class can not be used, true means it can. */ public static function
   test( $args = array() ) { if ( ! function_exists( ‘curl_init’ ) || ! function_exists(‘
   curl_exec’ ) ) return false; $is_ssl = isset( $args[‘ssl’] ) && $args[‘ssl’];
   if ( $is_ssl ) { $curl_version = curl_version(); // Check whether this cURL version
   support SSL requests. if ( ! (CURL_VERSION_SSL & $curl_version[‘features’]) )
   return false; } /** * Filter whether cURL can be used as a transport for retrieving
   a URL. * * [@since](https://wordpress.org/support/users/since/) 2.7.0 * * [@param](https://wordpress.org/support/users/param/)
   bool $use_class Whether the class can be used. Default true. * [@param](https://wordpress.org/support/users/param/)
   array $args An array of request arguments. */ return apply_filters( ‘use_curl_transport’,
   true, $args ); } } /** * Adds Proxy support to the WordPress HTTP API. * * There
   are caveats to proxy support. It requires that defines be made in the wp-config.
   php file to * enable proxy support. There are also a few filters that plugins
   can hook into for some of the * constants. * * Please note that only BASIC authentication
   is supported by most transports. * cURL MAY support more methods (such as NTLM
   authentication) depending on your environment. * * The constants are as follows:**
   WP_PROXY_HOST – Enable proxy support and host for connecting. * WP_PROXY_PORT–
   Proxy port for connection. No default, must be defined. * WP_PROXY_USERNAME –
   Proxy username, if it requires authentication. * WP_PROXY_PASSWORD – Proxy password,
   if it requires authentication. * WP_PROXY_BYPASS_HOSTS – Will prevent the hosts
   in this list from going through the proxy. * You do not need to have localhost
   and the blog host in this list, because they will not be passed * through the
   proxy. The list should be presented in a comma separated list, wildcards using*
   are supported, eg. *.wordpress.org * * * An example can be as seen below. * *
   define(‘WP_PROXY_HOST’, ‘192.168.84.101’); * define(‘WP_PROXY_PORT’, ‘8080’);*
   define(‘WP_PROXY_BYPASS_HOSTS’, ‘localhost, [http://www.example.com](http://www.example.com),*.
   wordpress.org’); * * [@link](https://wordpress.org/support/users/link/) [https://core.trac.wordpress.org/ticket/4011](https://core.trac.wordpress.org/ticket/4011)
   Proxy support ticket in WordPress. * [@link](https://wordpress.org/support/users/link/)
   [https://core.trac.wordpress.org/ticket/14636](https://core.trac.wordpress.org/ticket/14636)
   Allow wildcard domains in WP_PROXY_BYPASS_HOSTS * [@since](https://wordpress.org/support/users/since/)
   2.8.0 */ class WP_HTTP_Proxy { /** * Whether proxy connection should be used.**
   [@since](https://wordpress.org/support/users/since/) 2.8.0 * * [@use](https://wordpress.org/support/users/use/)
   WP_PROXY_HOST * [@use](https://wordpress.org/support/users/use/) WP_PROXY_PORT**
   [@return](https://wordpress.org/support/users/return/) bool */ public function
   is_enabled() { return defined(‘WP_PROXY_HOST’) && defined(‘WP_PROXY_PORT’); }/***
   Whether authentication should be used. * * [@since](https://wordpress.org/support/users/since/)
   2.8.0 * * [@use](https://wordpress.org/support/users/use/) WP_PROXY_USERNAME *
   [@use](https://wordpress.org/support/users/use/) WP_PROXY_PASSWORD * * [@return](https://wordpress.org/support/users/return/)
   bool */ public function use_authentication() { return defined(‘WP_PROXY_USERNAME’)&&
   defined(‘WP_PROXY_PASSWORD’); } /** * Retrieve the host for the proxy server.**
   [@since](https://wordpress.org/support/users/since/) 2.8.0 * * [@return](https://wordpress.org/support/users/return/)
   string */ public function host() { if ( defined(‘WP_PROXY_HOST’) ) return WP_PROXY_HOST;
   return ”; } /** * Retrieve the port for the proxy server. * * [@since](https://wordpress.org/support/users/since/)
   2.8.0 * * [@return](https://wordpress.org/support/users/return/) string */ public
   function port() { if ( defined(‘WP_PROXY_PORT’) ) return WP_PROXY_PORT; return”;}/***
   Retrieve the username for proxy authentication. * * [@since](https://wordpress.org/support/users/since/)
   2.8.0 * * [@return](https://wordpress.org/support/users/return/) string */ public
   function username() { if ( defined(‘WP_PROXY_USERNAME’) ) return WP_PROXY_USERNAME;
   return ”; } /** * Retrieve the password for proxy authentication. * * [@since](https://wordpress.org/support/users/since/)
   2.8.0 * * [@return](https://wordpress.org/support/users/return/) string */ public
   function password() { if ( defined(‘WP_PROXY_PASSWORD’) ) return WP_PROXY_PASSWORD;
   return ”; } /** * Retrieve authentication string for proxy authentication. * *
   [@since](https://wordpress.org/support/users/since/) 2.8.0 * * [@return](https://wordpress.org/support/users/return/)
   string */ public function authentication() { return $this->username() . ‘:’ .
   $this->password(); } /** * Retrieve header string for proxy authentication. **
   [@since](https://wordpress.org/support/users/since/) 2.8.0 * * [@return](https://wordpress.org/support/users/return/)
   string */ public function authentication_header() { return ‘Proxy-Authorization:
   Basic ‘ . base64_encode( $this->authentication() ); } /** * Whether URL should
   be sent through the proxy server. * * We want to keep localhost and the blog 
   URL from being sent through the proxy server, because * some proxies can not 
   handle this. We also have the constant available for defining other * hosts that
   won’t be sent through the proxy. * * [@since](https://wordpress.org/support/users/since/)
   2.8.0 * * [@param](https://wordpress.org/support/users/param/) string $uri URI
   to check. * [@return](https://wordpress.org/support/users/return/) bool True,
   to send through the proxy and false if, the proxy should not be used. */ public
   function send_through_proxy( $uri ) { /* * parse_url() only handles http, https
   type URLs, and will emit E_WARNING on failure. * This will be displayed on blogs,
   which is not reasonable. */ $check = @parse_url($uri); // Malformed URL, can 
   not process, but this could mean ssl, so let through anyway. if ( $check === 
   false ) return true; $home = parse_url( get_option(‘siteurl’) ); /** * Filter
   whether to preempt sending the request through the proxy server. * * Returning
   false will bypass the proxy; returning true will send * the request through the
   proxy. Returning null bypasses the filter. * * [@since](https://wordpress.org/support/users/since/)
   3.5.0 * * [@param](https://wordpress.org/support/users/param/) null $override
   Whether to override the request result. Default null. * [@param](https://wordpress.org/support/users/param/)
   string $uri URL to check. * [@param](https://wordpress.org/support/users/param/)
   array $check Associative array result of parsing the URI. * [@param](https://wordpress.org/support/users/param/)
   array $home Associative array result of parsing the site URL. */ $result = apply_filters(‘
   pre_http_send_through_proxy’, null, $uri, $check, $home ); if ( ! is_null( $result))
   return $result; if ( ‘localhost’ == $check[‘host’] || ( isset( $home[‘host’] )&&
   $home[‘host’] == $check[‘host’] ) ) return false; if ( !defined(‘WP_PROXY_BYPASS_HOSTS’))
   return true; static $bypass_hosts; static $wildcard_regex = false; if ( null 
   == $bypass_hosts ) { $bypass_hosts = preg_split(‘|,\s*|’, WP_PROXY_BYPASS_HOSTS);
   if ( false !== strpos(WP_PROXY_BYPASS_HOSTS, ‘*’) ) { $wildcard_regex = array();
   foreach ( $bypass_hosts as $host ) $wildcard_regex[] = str_replace( ‘\*’, ‘.+’,
   preg_quote( $host, ‘/’ ) ); $wildcard_regex = ‘/^(‘ . implode(‘|’, $wildcard_regex).‘)
   $/i’; } } if ( !empty($wildcard_regex) ) return !preg_match($wildcard_regex, 
   $check[‘host’]); else return !in_array( $check[‘host’], $bypass_hosts ); } } /***
   Internal representation of a single cookie. * * Returned cookies are represented
   using this class, and when cookies are set, if they are not * already a WP_Http_Cookie()
   object, then they are turned into one. * * [@todo](https://wordpress.org/support/users/todo/)
   The WordPress convention is to use underscores instead of camelCase for function
   and method * names. Need to switch to use underscores instead for the methods.**
   [@package](https://wordpress.org/support/users/package/) WordPress * @subpackage
   HTTP * [@since](https://wordpress.org/support/users/since/) 2.8.0 */ class WP_Http_Cookie{/***
   Cookie name. * * [@since](https://wordpress.org/support/users/since/) 2.8.0 *
   [@var](https://wordpress.org/support/users/var/) string */ public $name; /** *
   Cookie value. * * [@since](https://wordpress.org/support/users/since/) 2.8.0 *
   [@var](https://wordpress.org/support/users/var/) string */ public $value; /***
   When the cookie expires. * * [@since](https://wordpress.org/support/users/since/)
   2.8.0 * [@var](https://wordpress.org/support/users/var/) string */ public $expires;/***
   Cookie URL path. * * [@since](https://wordpress.org/support/users/since/) 2.8.0*
   [@var](https://wordpress.org/support/users/var/) string */ public $path; /** *
   Cookie Domain. * * [@since](https://wordpress.org/support/users/since/) 2.8.0*
   [@var](https://wordpress.org/support/users/var/) string */ public $domain; /***
   Sets up this cookie object. * * The parameter $data should be either an associative
   array containing the indices names below * or a header string detailing it. **
   [@since](https://wordpress.org/support/users/since/) 2.8.0 * [@access](https://wordpress.org/support/users/access/)
   public * * [@param](https://wordpress.org/support/users/param/) string|array 
   $data { * Raw cookie data as header string or data array. * * [@type](https://wordpress.org/support/users/type/)
   string $name Cookie name. * [@type](https://wordpress.org/support/users/type/)
   mixed $value Value. Should NOT already be urlencoded. * [@type](https://wordpress.org/support/users/type/)
   string|int $expires Optional. Unix timestamp or formatted date. Default null.*
   [@type](https://wordpress.org/support/users/type/) string $path Optional. Path.
   Default ‘/’. * [@type](https://wordpress.org/support/users/type/) string $domain
   Optional. Domain. Default host of parsed $requested_url. * [@type](https://wordpress.org/support/users/type/)
   int $port Optional. Port. Default null. * } * [@param](https://wordpress.org/support/users/param/)
   string $requested_url The URL which the cookie was set on, used for default $
   domain * and $port values. */ public function __construct( $data, $requested_url
   = ” ) { if ( $requested_url ) $arrURL = @parse_url( $requested_url ); if ( isset(
   $arrURL[‘host’] ) ) $this->domain = $arrURL[‘host’]; $this->path = isset( $arrURL[‘
   path’] ) ? $arrURL[‘path’] : ‘/’; if ( ‘/’ != substr( $this->path, -1 ) ) $this-
   >path = dirname( $this->path ) . ‘/’; if ( is_string( $data ) ) { // Assume it’s
   a header string direct from a previous request. $pairs = explode( ‘;’, $data );//
   Special handling for first pair; name=value. Also be careful of “=” in value.
   $name = trim( substr( $pairs[0], 0, strpos( $pairs[0], ‘=’ ) ) ); $value = substr(
   $pairs[0], strpos( $pairs[0], ‘=’ ) + 1 ); $this->name = $name; $this->value 
   = urldecode( $value ); // Removes name=value from items. array_shift( $pairs );//
   Set everything else as a property. foreach ( $pairs as $pair ) { $pair = rtrim(
   $pair); // Handle the cookie ending in ; which results in a empty final pair.
   if ( empty($pair) ) continue; list( $key, $val ) = strpos( $pair, ‘=’ ) ? explode(‘
   =’, $pair ) : array( $pair, ” ); $key = strtolower( trim( $key ) ); if ( ‘expires’
   == $key ) $val = strtotime( $val ); $this->$key = $val; } } else { if ( !isset(
   $data[‘name’] ) ) return false; // Set properties based directly on parameters.
   foreach ( array( ‘name’, ‘value’, ‘path’, ‘domain’, ‘port’ ) as $field ) { if(
   isset( $data[ $field ] ) ) $this->$field = $data[ $field ]; } if ( isset( $data[‘
   expires’] ) ) $this->expires = is_int( $data[‘expires’] ) ? $data[‘expires’] :
   strtotime( $data[‘expires’] ); else $this->expires = null; } } /** * Confirms
   that it’s OK to send this cookie to the URL checked against. * * Decision is 
   based on RFC 2109/2965, so look there for details on validity. * * [@access](https://wordpress.org/support/users/access/)
   public * [@since](https://wordpress.org/support/users/since/) 2.8.0 * * [@param](https://wordpress.org/support/users/param/)
   string $url URL you intend to send this cookie to * [@return](https://wordpress.org/support/users/return/)
   boolean true if allowed, false otherwise. */ public function test( $url ) { if(
   is_null( $this->name ) ) return false; // Expires – if expired then nothing else
   matters. if ( isset( $this->expires ) && time() > $this->expires ) return false;//
   Get details on the URL we’re thinking about sending to. $url = parse_url( $url);
   $url[‘port’] = isset( $url[‘port’] ) ? $url[‘port’] : ( ‘https’ == $url[‘scheme’]?
   443 : 80 ); $url[‘path’] = isset( $url[‘path’] ) ? $url[‘path’] : ‘/’; // Values
   to use for comparison against the URL. $path = isset( $this->path ) ? $this->
   path : ‘/’; $port = isset( $this->port ) ? $this->port : null; $domain = isset(
   $this->domain ) ? strtolower( $this->domain ) : strtolower( $url[‘host’] ); if(
   false === stripos( $domain, ‘.’ ) ) $domain .= ‘.local’; // Host – very basic
   check that the request URL ends with the domain restriction (minus leading dot).
   $domain = substr( $domain, 0, 1 ) == ‘.’ ? substr( $domain, 1 ) : $domain; if(
   substr( $url[‘host’], -strlen( $domain ) ) != $domain ) return false; // Port–
   supports “port-lists” in the format: “80,8000,8080”. if ( !empty( $port ) && !
   in_array( $url[‘port’], explode( ‘,’, $port) ) ) return false; // Path – request
   path must start with path restriction. if ( substr( $url[‘path’], 0, strlen( 
   $path ) ) != $path ) return false; return true; } /** * Convert cookie name and
   value back to header string. * * [@access](https://wordpress.org/support/users/access/)
   public * [@since](https://wordpress.org/support/users/since/) 2.8.0 * * [@return](https://wordpress.org/support/users/return/)
   string Header encoded cookie name and value. */ public function getHeaderValue(){
   if ( ! isset( $this->name ) || ! isset( $this->value ) ) return ”; /** * Filter
   the header-encoded cookie value. * * [@since](https://wordpress.org/support/users/since/)
   3.4.0 * * [@param](https://wordpress.org/support/users/param/) string $value 
   The cookie value. * [@param](https://wordpress.org/support/users/param/) string
   $name The cookie name. */ return $this->name . ‘=’ . apply_filters( ‘wp_http_cookie_value’,
   $this->value, $this->name ); } /** * Retrieve cookie header for usage in the 
   rest of the WordPress HTTP API. * * [@access](https://wordpress.org/support/users/access/)
   public * [@since](https://wordpress.org/support/users/since/) 2.8.0 * * [@return](https://wordpress.org/support/users/return/)
   string */ public function getFullHeader() { return ‘Cookie: ‘ . $this->getHeaderValue();}}/***
   Implementation for deflate and gzip transfer encodings. * * Includes RFC 1950,
   RFC 1951, and RFC 1952. * * [@since](https://wordpress.org/support/users/since/)
   2.8.0 * [@package](https://wordpress.org/support/users/package/) WordPress * @
   subpackage HTTP */ class WP_Http_Encoding { /** * Compress raw string using the
   deflate format. * * Supports the RFC 1951 standard. * * [@since](https://wordpress.org/support/users/since/)
   2.8.0 * * [@param](https://wordpress.org/support/users/param/) string $raw String
   to compress. * [@param](https://wordpress.org/support/users/param/) int $level
   Optional, default is 9. Compression level, 9 is highest. * [@param](https://wordpress.org/support/users/param/)
   string $supports Optional, not used. When implemented it will choose the right
   compression based on what the server supports. * [@return](https://wordpress.org/support/users/return/)
   string|false False on failure. */ public static function compress( $raw, $level
   = 9, $supports = null ) { return gzdeflate( $raw, $level ); } /** * Decompression
   of deflated string. * * Will attempt to decompress using the RFC 1950 standard,
   and if that fails * then the RFC 1951 standard deflate will be attempted. Finally,
   the RFC * 1952 standard gzip decode will be attempted. If all fail, then the *
   original compressed string will be returned. * * [@since](https://wordpress.org/support/users/since/)
   2.8.0 * * [@param](https://wordpress.org/support/users/param/) string $compressed
   String to decompress. * [@param](https://wordpress.org/support/users/param/) 
   int $length The optional length of the compressed data. * [@return](https://wordpress.org/support/users/return/)
   string|bool False on failure. */ public static function decompress( $compressed,
   $length = null ) { if ( empty($compressed) ) return $compressed; if ( false !
   == ( $decompressed = @gzinflate( $compressed ) ) ) return $decompressed; if (
   false !== ( $decompressed = WP_Http_Encoding::compatible_gzinflate( $compressed)))
   return $decompressed; if ( false !== ( $decompressed = @gzuncompress( $compressed)))
   return $decompressed; if ( function_exists(‘gzdecode’) ) { $decompressed = @gzdecode(
   $compressed ); if ( false !== $decompressed ) return $decompressed; } return 
   $compressed; } /** * Decompression of deflated string while staying compatible
   with the majority of servers. * * Certain Servers will return deflated data with
   headers which PHP’s gzinflate() * function cannot handle out of the box. The 
   following function has been created from * various snippets on the gzinflate()
   PHP documentation. * * Warning: Magic numbers within. Due to the potential different
   formats that the compressed * data may be returned in, some “magic offsets” are
   needed to ensure proper decompression * takes place. For a simple progmatic way
   to determine the magic offset in use, see: * [https://core.trac.wordpress.org/ticket/18273](https://core.trac.wordpress.org/ticket/18273)**
   [@since](https://wordpress.org/support/users/since/) 2.8.1 * [@link](https://wordpress.org/support/users/link/)
   [https://core.trac.wordpress.org/ticket/18273](https://core.trac.wordpress.org/ticket/18273)*
   [@link](https://wordpress.org/support/users/link/) [http://au2.php.net/manual/en/function.gzinflate.php#70875](http://au2.php.net/manual/en/function.gzinflate.php#70875)*
   [@link](https://wordpress.org/support/users/link/) [http://au2.php.net/manual/en/function.gzinflate.php#77336](http://au2.php.net/manual/en/function.gzinflate.php#77336)**
   [@param](https://wordpress.org/support/users/param/) string $gzData String to
   decompress. * [@return](https://wordpress.org/support/users/return/) string|bool
   False on failure. */ public static function compatible_gzinflate($gzData) { //
   Compressed data might contain a full header, if so strip it for gzinflate(). 
   if ( substr($gzData, 0, 3) == “\x1f\x8b\x08” ) { $i = 10; $flg = ord( substr(
   $gzData, 3, 1) ); if ( $flg > 0 ) { if ( $flg & 4 ) { list($xlen) = unpack(‘v’,
   substr($gzData, $i, 2) ); $i = $i + 2 + $xlen; } if ( $flg & 8 ) $i = strpos(
   $gzData, “”, $i) + 1; if ( $flg & 16 ) $i = strpos($gzData, “”, $i) + 1; if (
   $flg & 2 ) $i = $i + 2; } $decompressed = @gzinflate( substr($gzData, $i, -8));
   if ( false !== $decompressed ) return $decompressed; } // Compressed data from
   java.util.zip.Deflater amongst others. $decompressed = @gzinflate( substr($gzData,
   2) ); if ( false !== $decompressed ) return $decompressed; return false; } /***
   What encoding types to accept and their priority values. * * [@since](https://wordpress.org/support/users/since/)
   2.8.0 * * [@param](https://wordpress.org/support/users/param/) string $url * 
   [@param](https://wordpress.org/support/users/param/) array $args * [@return](https://wordpress.org/support/users/return/)
   string Types of encoding to accept. */ public static function accept_encoding(
   $url, $args ) { $type = array(); $compression_enabled = WP_Http_Encoding::is_available();
   if ( ! $args[‘decompress’] ) // Decompression specifically disabled. $compression_enabled
   = false; elseif ( $args[‘stream’] ) // Disable when streaming to file. $compression_enabled
   = false; elseif ( isset( $args[‘limit_response_size’] ) ) // If only partial 
   content is being requested, we won’t be able to decompress it. $compression_enabled
   = false; if ( $compression_enabled ) { if ( function_exists( ‘gzinflate’ ) ) 
   $type[] = ‘deflate;q=1.0’; if ( function_exists( ‘gzuncompress’ ) ) $type[] =‘
   compress;q=0.5’; if ( function_exists( ‘gzdecode’ ) ) $type[] = ‘gzip;q=0.5’;}/***
   Filter the allowed encoding types. * * [@since](https://wordpress.org/support/users/since/)
   3.6.0 * * [@param](https://wordpress.org/support/users/param/) array $type Encoding
   types allowed. Accepts ‘gzinflate’, * ‘gzuncompress’, ‘gzdecode’. * [@param](https://wordpress.org/support/users/param/)
   string $url URL of the HTTP request. * [@param](https://wordpress.org/support/users/param/)
   array $args HTTP request arguments. */ $type = apply_filters( ‘wp_http_accept_encoding’,
   $type, $url, $args ); return implode(‘, ‘, $type); } /** * What encoding the 
   content used when it was compressed to send in the headers. * * [@since](https://wordpress.org/support/users/since/)
   2.8.0 * * [@return](https://wordpress.org/support/users/return/) string Content-
   Encoding string to send in the header. */ public static function content_encoding(){
   return ‘deflate’; } /** * Whether the content be decoded based on the headers.**
   [@since](https://wordpress.org/support/users/since/) 2.8.0 * * [@param](https://wordpress.org/support/users/param/)
   array|string $headers All of the available headers. * [@return](https://wordpress.org/support/users/return/)
   bool */ public static function should_decode($headers) { if ( is_array( $headers)){
   if ( array_key_exists(‘content-encoding’, $headers) && ! empty( $headers[‘content-
   encoding’] ) ) return true; } else if ( is_string( $headers ) ) { return ( stripos(
   $headers, ‘content-encoding:’) !== false ); } return false; } /** * Whether decompression
   and compression are supported by the PHP version. * * Each function is tested
   instead of checking for the zlib extension, to * ensure that the functions all
   exist in the PHP version and aren’t * disabled. * * [@since](https://wordpress.org/support/users/since/)
   2.8.0 * * [@return](https://wordpress.org/support/users/return/) bool */ public
   static function is_available() { return ( function_exists(‘gzuncompress’) || 
   function_exists(‘gzdeflate’) || function_exists(‘gzinflate’) ); } } Fatal error:
   Class ‘WP_Http’ not found in /home/nameyourd/public_html/wp-includes/http.php
   on line 26
 *  Thread Starter [mdw](https://wordpress.org/support/users/yamaryam/)
 * (@yamaryam)
 * [11 years, 3 months ago](https://wordpress.org/support/topic/fatal-error-1571/#post-5941849)
 * I recovered the site after deleting the cache folder and re-upload all wordpress
   files but for sure I will never try to reinstall this plugin again. I remember
   I had a similar trouble with Quick Cache plugin but I thought it had improved.
   🙁

Viewing 3 replies - 1 through 3 (of 3 total)

The topic ‘Urgent Fatal error ���������’ is closed to new replies.

 * ![](https://s.w.org/plugins/geopattern-icon/zencache_3c4c6b.svg)
 * [ZenCache](https://wordpress.org/plugins/zencache/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/zencache/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/zencache/)
 * [Active Topics](https://wordpress.org/support/plugin/zencache/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/zencache/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/zencache/reviews/)

 * 3 replies
 * 1 participant
 * Last reply from: [mdw](https://wordpress.org/support/users/yamaryam/)
 * Last activity: [11 years, 3 months ago](https://wordpress.org/support/topic/fatal-error-1571/#post-5941849)
 * Status: resolved