WP_SimplePie_File::__construct() WordPress Method

The WP_SimplePie_File::__construct() function allows you to specify a file to read and parse. This can either be a local path or a remote URL. Once the file is specified, the function will grab the file content and store it in the $body property.

WP_SimplePie_File::__construct( string $url, int $timeout = 10, int $redirects = 5, string|array $headers = null, string $useragent = null, bool $force_fsockopen = false ) #

Constructor.


Parameters

$url

(string)(Required)Remote file URL.

$timeout

(int)(Optional) How long the connection should stay open in seconds.

Default value: 10

$redirects

(int)(Optional) The number of allowed redirects.

Default value: 5

$headers

(string|array)(Optional) Array or string of headers to send with the request.

Default value: null

$useragent

(string)(Optional) User-agent value sent.

Default value: null

$force_fsockopen

(bool)(Optional) Whether to force opening internet or unix domain socket connection or not.

Default value: false


Top ↑

Source

File: wp-includes/class-wp-simplepie-file.php

40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
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 );
 
            /*
             * SimplePie expects multiple headers to be stored as a comma-separated string,
             * but `wp_remote_retrieve_headers()` returns them as an array, so they need
             * to be converted.
             *
             * The only exception to that is the `content-type` header, which should ignore
             * any previous values and only use the last one.
             *
             * @see SimplePie_HTTP_Parser::new_line().
             */
            foreach ( $this->headers as $name => $value ) {
                if ( ! is_array( $value ) ) {
                    continue;
                }
 
                if ( 'content-type' === $name ) {
                    $this->headers[ $name ] = array_pop( $value );
                } else {
                    $this->headers[ $name ] = implode( ', ', $value );
                }
            }
 
            $this->body        = wp_remote_retrieve_body( $res );
            $this->status_code = wp_remote_retrieve_response_code( $res );
        }
    } else {
        $this->error   = '';
        $this->success = false;
    }
}


Top ↑

Changelog

Changelog
VersionDescription
5.6.1Multiple headers are concatenated into a comma-separated string, rather than remaining an array.
3.2.0Updated to use a PHP5 constructor.
2.8.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by the Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.