mirror of
https://github.com/WordPress/WordPress.git
synced 2024-12-23 09:37:42 +01:00
0860bb2771
Prior to about 2013, many class methods lacked even access modifiers which made the `@access` notations that much more useful. Now that we've gotten to a point where the codebase is more mature from a maintenance perspective and we can finally remove these notations. Notable exceptions to this change include standalone functions notated as private as well as some classes still considered to represent "private" APIs. See #41452. Built from https://develop.svn.wordpress.org/trunk@41162 git-svn-id: http://core.svn.wordpress.org/trunk@41002 1a063a9b-81f0-0310-95a4-ce76da25c4cd
72 lines
2.2 KiB
PHP
72 lines
2.2 KiB
PHP
<?php
|
|
/**
|
|
* Feed API: WP_SimplePie_File class
|
|
*
|
|
* @package WordPress
|
|
* @subpackage Feed
|
|
* @since 4.7.0
|
|
*/
|
|
|
|
/**
|
|
* Core class for fetching remote files and reading local files with SimplePie.
|
|
*
|
|
* @since 2.8.0
|
|
*
|
|
* @see SimplePie_File
|
|
*/
|
|
class WP_SimplePie_File extends SimplePie_File {
|
|
|
|
/**
|
|
* Constructor.
|
|
*
|
|
* @since 2.8.0
|
|
* @since 3.2.0 Updated to use a PHP5 constructor.
|
|
*
|
|
* @param string $url Remote file URL.
|
|
* @param integer $timeout Optional. How long the connection should stay open in seconds.
|
|
* Default 10.
|
|
* @param integer $redirects Optional. The number of allowed redirects. Default 5.
|
|
* @param string|array $headers Optional. Array or string of headers to send with the request.
|
|
* Default null.
|
|
* @param string $useragent Optional. User-agent value sent. Default null.
|
|
* @param boolean $force_fsockopen Optional. Whether to force opening internet or unix domain socket
|
|
* connection or not. Default false.
|
|
*/
|
|
public function __construct($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false) {
|
|
$this->url = $url;
|
|
$this->timeout = $timeout;
|
|
$this->redirects = $redirects;
|
|
$this->headers = $headers;
|
|
$this->useragent = $useragent;
|
|
|
|
$this->method = SIMPLEPIE_FILE_SOURCE_REMOTE;
|
|
|
|
if ( preg_match('/^http(s)?:\/\//i', $url) ) {
|
|
$args = array(
|
|
'timeout' => $this->timeout,
|
|
'redirection' => $this->redirects,
|
|
);
|
|
|
|
if ( !empty($this->headers) )
|
|
$args['headers'] = $this->headers;
|
|
|
|
if ( SIMPLEPIE_USERAGENT != $this->useragent ) //Use default WP user agent unless custom has been specified
|
|
$args['user-agent'] = $this->useragent;
|
|
|
|
$res = wp_safe_remote_request($url, $args);
|
|
|
|
if ( is_wp_error($res) ) {
|
|
$this->error = 'WP HTTP Error: ' . $res->get_error_message();
|
|
$this->success = false;
|
|
} else {
|
|
$this->headers = wp_remote_retrieve_headers( $res );
|
|
$this->body = wp_remote_retrieve_body( $res );
|
|
$this->status_code = wp_remote_retrieve_response_code( $res );
|
|
}
|
|
} else {
|
|
$this->error = '';
|
|
$this->success = false;
|
|
}
|
|
}
|
|
}
|