Changeset 33062
- Timestamp:
- 07/03/2015 12:00:10 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-admin/includes/class-wp-press-this.php
r33061 r33062 257 257 */ 258 258 public function fetch_source_html( $url ) { 259 // Download source page to tmp file.260 $source_tmp_file = ( ! empty( $url ) ) ? download_url( $url, 30 ) : ''; 261 $source_content = '';262 263 if ( ! is_wp_error( $source_tmp_file ) && file_exists( $source_tmp_file ) ) {264 265 // Get the content of the source page from the tmp file..266 $source_content = wp_kses(267 @file_get_contents( $source_tmp_file ),268 array(269 'img' => array(270 'src' => array(), 271 'width' => array(),272 'height' => array(),273 ),274 'iframe' => array( 275 'src' => array(),276 ),277 'link' => array(278 'rel' => array(),279 'itemprop' => array(),280 'href' => array(),281 ),282 'meta' => array(283 'property' => array(),284 'name' => array(),285 'content' => array(),286 )287 )288 ) ;289 290 // All done with backward compatibility. Let's do some cleanup, for good measure :)291 unlink( $source_tmp_file );292 293 } else if ( is_wp_error( $source_tmp_file ) ) {294 $source_content = new WP_Error( 'upload-error', sprintf( __( 'ERROR: %s' ), sprintf( __( 'Could not download the source URL (native error: %s).' ), $source_tmp_file->get_error_message() ) ));295 } else if ( ! file_exists( $source_tmp_file ) ) { 296 $source_content = new WP_Error( 'no-local-file', sprintf( __( 'ERROR: %s' ), __( 'Could not save or locate the temporary download file for the source URL.' ) ));297 }259 global $wp_version; 260 261 if ( empty( $url ) ) { 262 return new WP_Error( 'invalid-url', __( 'A valid URL was not provided.' ) ); 263 } 264 265 $remote_url = wp_safe_remote_get( $url, array( 266 'timeout' => 30, 267 // Use an explicit user-agent for Press This 268 'user-agent' => 'Press This (WordPress/' . $wp_version . '); ' . get_bloginfo( 'url' ) 269 ) ); 270 271 if ( is_wp_error( $remote_url ) ) { 272 return $remote_url; 273 } 274 275 $useful_html_elements = array( 276 'img' => array( 277 'src' => true, 278 'width' => true, 279 'height' => true, 280 ), 281 'iframe' => array( 282 'src' => true, 283 ), 284 'link' => array( 285 'rel' => true, 286 'itemprop' => true, 287 'href' => true, 288 ), 289 'meta' => array( 290 'property' => true, 291 'name' => true, 292 'content' => true, 293 ) 294 ); 295 296 $source_content = wp_remote_retrieve_body( $remote_url ); 297 $source_content = wp_kses( $source_content, $useful_html_elements ); 298 298 299 299 return $source_content; … … 1169 1169 1170 1170 /** 1171 * Sets the user agent used for Press This HTTP requests.1172 *1173 * @since 4.3.01174 * @access public1175 *1176 * @global string $wp_version1177 *1178 * @return string User agent.1179 */1180 public function ua_string() {1181 global $wp_version;1182 1183 $user_agent = 'Press This (WordPress/' . $wp_version . '); ' . get_bloginfo( 'url' );1184 1185 return $user_agent;1186 }1187 1188 /**1189 1171 * Serves the app's base HTML, which in turns calls the load script. 1190 1172 * … … 1198 1180 public function html() { 1199 1181 global $wp_locale, $wp_version; 1200 1201 // Set explicit user-agent for the $data outbound HTTP requests.1202 add_filter( 'http_headers_useragent', array( $this, 'ua_string' ) );1203 1182 1204 1183 // Get data, new (POST) and old (GET).
Note: See TracChangeset
for help on using the changeset viewer.