[wp-trac] [WordPress Trac] #32561: Warning: fread() expects parameter 1 to be resource, boolean given in get_file_data()

WordPress Trac noreply at wordpress.org
Wed Jun 3 14:48:54 UTC 2015


#32561: Warning: fread() expects parameter 1 to be resource, boolean given in
get_file_data()
--------------------------+-----------------------------
 Reporter:  SpYdR         |      Owner:
     Type:  defect (bug)  |     Status:  new
 Priority:  normal        |  Milestone:  Awaiting Review
Component:  General       |    Version:  4.1.3
 Severity:  normal        |   Keywords:
  Focuses:                |
--------------------------+-----------------------------
 PHP throw this error when wordpress try to read metadata from a file which
 is missing or isn't readable (throwing a "failed to open stream: No such
 file or directory" warning).

 In ''wp-includes/functions.php'' the '''get_file_data''' function code
 must be :
 {{{
 // We don't need to write to the file, so just open for reading.
 $fp = fopen( $file, 'r' );
 if ($fp === false) {
         return array();
 }

 // Pull only the first 8kiB of the file in.
 $file_data = fread( $fp, 8192 );

 // PHP will close file handle, but we are good citizens.
 fclose( $fp );

 // Make sure we catch CR-only line endings.
 $file_data = str_replace( "\r", "\n", $file_data );

 /**
  * Filter extra file headers by context.
  *
  * The dynamic portion of the hook name, `$context`, refers to
  * the context where extra headers might be loaded.
  *
  * @since 2.9.0
  *
  * @param array $extra_context_headers Empty array by default.
  */
 if ( $context && $extra_headers = apply_filters(
 "extra_{$context}_headers", array() ) ) {
         $extra_headers = array_combine( $extra_headers, $extra_headers );
 // keys equal values
         $all_headers = array_merge( $extra_headers, (array)
 $default_headers );
 } else {
         $all_headers = $default_headers;
 }

 foreach ( $all_headers as $field => $regex ) {
         if ( preg_match( '/^[ \t\/*#@]*' . preg_quote( $regex, '/' ) .
 ':(.*)$/mi', $file_data, $match ) && $match[1] )
                 $all_headers[ $field ] = _cleanup_header_comment(
 $match[1] );
         else
                 $all_headers[ $field ] = '';
 }

 return $all_headers;
 }}}

--
Ticket URL: <https://core.trac.wordpress.org/ticket/32561>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list