X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/d3b1ea255664edd2deef17f900a655613d20820d..refs/tags/wordpress-3.5.2:/wp-includes/rss.php diff --git a/wp-includes/rss.php b/wp-includes/rss.php index d48230ac..3b8e4de9 100644 --- a/wp-includes/rss.php +++ b/wp-includes/rss.php @@ -12,6 +12,11 @@ * @subpackage MagpieRSS */ +/** + * Deprecated. Use SimplePie (class-simplepie.php) instead. + */ +_deprecated_file( basename( __FILE__ ), '3.0', WPINC . '/class-simplepie.php' ); + /* * Hook to use another RSS object instead of MagpieRSS */ @@ -58,11 +63,10 @@ class MagpieRSS { if ( !is_resource($parser) ) trigger_error( "Failed to create an instance of PHP's XML parser. http://www.php.net/manual/en/ref.xml.php"); - $this->parser = $parser; # pass in parser, and a reference to this object - # setup handlers + # set up handlers # xml_set_object( $this->parser, $this ); xml_set_element_handler($this->parser, @@ -162,7 +166,6 @@ class MagpieRSS { $this->incontent = $el; - } // if inside an Atom content construct (e.g. content or summary) field treat tags as text @@ -201,8 +204,6 @@ class MagpieRSS { } } - - function feed_cdata ($p, $text) { if ($this->feed_type == ATOM and $this->incontent) @@ -389,7 +390,7 @@ if ( !function_exists('fetch_rss') ) : /** * Build Magpie object based on RSS from URL. * - * @since unknown + * @since 1.5.0 * @package External * @subpackage MagpieRSS * @@ -431,7 +432,6 @@ function fetch_rss ($url) { debug($cache->ERROR, E_USER_WARNING); } - $cache_status = 0; // response of check_cache $request_headers = array(); // HTTP headers to send with fetch $rss = 0; // parsed RSS object @@ -456,7 +456,7 @@ function fetch_rss ($url) { // else attempt a conditional get - // setup headers + // set up headers if ( $cache_status == 'STALE' ) { $rss = $cache->get( $url ); if ( isset($rss->etag) and $rss->last_modified ) { @@ -527,7 +527,7 @@ endif; /** * Retrieve URL headers and content using WP HTTP Request API. * - * @since unknown + * @since 1.5.0 * @package External * @subpackage MagpieRSS * @@ -535,8 +535,8 @@ endif; * @param array $headers Optional. Headers to send to the URL. * @return Snoopy style response */ -function _fetch_remote_file ($url, $headers = "" ) { - $resp = wp_remote_request($url, array('headers' => $headers, 'timeout' => MAGPIE_FETCH_TIME_OUT)); +function _fetch_remote_file($url, $headers = "" ) { + $resp = wp_remote_request($url, array('headers' => $headers, 'timeout' => MAGPIE_FETCH_TIME_OUT, 'reject_unsafe_urls' => true )); if ( is_wp_error($resp) ) { $error = array_shift($resp->errors); @@ -546,11 +546,24 @@ function _fetch_remote_file ($url, $headers = "" ) { $resp->error = $error[0] . "\n"; //\n = Snoopy compatibility return $resp; } + + // Snoopy returns headers unprocessed. + // Also note, WP_HTTP lowercases all keys, Snoopy did not. + $return_headers = array(); + foreach ( wp_remote_retrieve_headers( $resp ) as $key => $value ) { + if ( !is_array($value) ) { + $return_headers[] = "$key: $value"; + } else { + foreach ( $value as $v ) + $return_headers[] = "$key: $v"; + } + } + $response = new stdClass; - $response->status = $resp['response']['code']; - $response->response_code = $resp['response']['code']; - $response->headers = $resp['headers']; - $response->results = $resp['body']; + $response->status = wp_remote_retrieve_response_code( $resp ); + $response->response_code = wp_remote_retrieve_response_code( $resp ); + $response->headers = $return_headers; + $response->results = wp_remote_retrieve_body( $resp ); return $response; } @@ -558,7 +571,7 @@ function _fetch_remote_file ($url, $headers = "" ) { /** * Retrieve * - * @since unknown + * @since 1.5.0 * @package External * @subpackage MagpieRSS * @@ -582,11 +595,11 @@ function _response_to_rss ($resp) { $val = ""; } - if ( $field == 'ETag' ) { + if ( $field == 'etag' ) { $rss->etag = $val; } - if ( $field == 'Last-Modified' ) { + if ( $field == 'last-modified' ) { $rss->last_modified = $val; } } @@ -606,9 +619,9 @@ function _response_to_rss ($resp) { } /** - * Setup constants with default values, unless user overrides. + * Set up constants with default values, unless user overrides. * - * @since unknown + * @since 1.5.0 * @package External * @subpackage MagpieRSS */ @@ -710,7 +723,6 @@ class RSSCache { Output: true on sucess \*=======================================================================*/ function set ($url, $rss) { - global $wpdb; $cache_option = 'rss_' . $this->file_name( $url ); set_transient($cache_option, $rss, $this->MAX_AGE); @@ -854,7 +866,7 @@ if ( !function_exists('wp_rss') ) : /** * Display all RSS items in a HTML ordered list. * - * @since unknown + * @since 1.5.0 * @package External * @subpackage MagpieRSS * @@ -874,7 +886,7 @@ function wp_rss( $url, $num_items = -1 ) { '
  • %3$s
  • ', esc_url( $item['link'] ), esc_attr( strip_tags( $item['description'] ) ), - htmlentities( $item['title'] ) + esc_html( $item['title'] ) ); } @@ -894,7 +906,7 @@ if ( !function_exists('get_rss') ) : * to display. You can't display all of them like you can with wp_rss() * function. * - * @since unknown + * @since 1.5.0 * @package External * @subpackage MagpieRSS * @@ -909,7 +921,7 @@ function get_rss ($url, $num_items = 5) { // Like get posts, but for RSS foreach ( (array) $rss->items as $item ) { echo "
  • \n"; echo ""; - echo htmlentities($item['title']); + echo esc_html($item['title']); echo "
    \n"; echo "
  • \n"; } @@ -918,5 +930,3 @@ function get_rss ($url, $num_items = 5) { // Like get posts, but for RSS } } endif; - -?>