mirror of
https://github.com/WordPress/WordPress.git
synced 2024-12-22 17:18:32 +01:00
Replace usages of basename() with wp_basename() in order to support multibyte filenames
This is focused on the pieces of code that touch media files and the tests that support them. `basename` isn't multibyte compatible out of the box. See http://php.net/basename and https://bugs.php.net/bug.php?id=62119. See #43170. Props Viper007Bond. Built from https://develop.svn.wordpress.org/trunk@44785 git-svn-id: http://core.svn.wordpress.org/trunk@44617 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
e0e99fe82e
commit
71cf332e65
@ -494,7 +494,7 @@ class Custom_Background {
|
||||
$url = $file['url'];
|
||||
$type = $file['type'];
|
||||
$file = $file['file'];
|
||||
$filename = basename( $file );
|
||||
$filename = wp_basename( $file );
|
||||
|
||||
// Construct the object array
|
||||
$object = array(
|
||||
|
@ -820,7 +820,7 @@ endif;
|
||||
return $this->finished();
|
||||
} elseif ( $width > $max_width ) {
|
||||
$oitar = $width / $max_width;
|
||||
$image = wp_crop_image( $attachment_id, 0, 0, $width, $height, $max_width, $height / $oitar, false, str_replace( basename( $file ), 'midsize-' . basename( $file ), $file ) );
|
||||
$image = wp_crop_image( $attachment_id, 0, 0, $width, $height, $max_width, $height / $oitar, false, str_replace( wp_basename( $file ), 'midsize-' . wp_basename( $file ), $file ) );
|
||||
if ( ! $image || is_wp_error( $image ) ) {
|
||||
wp_die( __( 'Image could not be processed. Please go back and try again.' ), __( 'Image Processing Error' ) );
|
||||
}
|
||||
@ -828,7 +828,7 @@ endif;
|
||||
/** This filter is documented in wp-admin/custom-header.php */
|
||||
$image = apply_filters( 'wp_create_file_in_uploads', $image, $attachment_id ); // For replication
|
||||
|
||||
$url = str_replace( basename( $url ), basename( $image ), $url );
|
||||
$url = str_replace( wp_basename( $url ), wp_basename( $image ), $url );
|
||||
$width = $width / $oitar;
|
||||
$height = $height / $oitar;
|
||||
} else {
|
||||
@ -895,7 +895,7 @@ endif;
|
||||
$url = $file['url'];
|
||||
$type = $file['type'];
|
||||
$file = $file['file'];
|
||||
$filename = basename( $file );
|
||||
$filename = wp_basename( $file );
|
||||
|
||||
// Construct the object array
|
||||
$object = array(
|
||||
@ -984,7 +984,7 @@ endif;
|
||||
$this->set_header_image( compact( 'url', 'attachment_id', 'width', 'height' ) );
|
||||
|
||||
// Cleanup.
|
||||
$medium = str_replace( basename( $original ), 'midsize-' . basename( $original ), $original );
|
||||
$medium = str_replace( wp_basename( $original ), 'midsize-' . wp_basename( $original ), $original );
|
||||
if ( file_exists( $medium ) ) {
|
||||
wp_delete_file( $medium );
|
||||
}
|
||||
@ -1208,14 +1208,14 @@ endif;
|
||||
final public function create_attachment_object( $cropped, $parent_attachment_id ) {
|
||||
$parent = get_post( $parent_attachment_id );
|
||||
$parent_url = wp_get_attachment_url( $parent->ID );
|
||||
$url = str_replace( basename( $parent_url ), basename( $cropped ), $parent_url );
|
||||
$url = str_replace( wp_basename( $parent_url ), wp_basename( $cropped ), $parent_url );
|
||||
|
||||
$size = @getimagesize( $cropped );
|
||||
$image_type = ( $size ) ? $size['mime'] : 'image/jpeg';
|
||||
|
||||
$object = array(
|
||||
'ID' => $parent_attachment_id,
|
||||
'post_title' => basename( $cropped ),
|
||||
'post_title' => wp_basename( $cropped ),
|
||||
'post_mime_type' => $image_type,
|
||||
'guid' => $url,
|
||||
'context' => 'custom-header',
|
||||
|
@ -3651,13 +3651,13 @@ function wp_ajax_crop_image() {
|
||||
$cropped = apply_filters( 'wp_create_file_in_uploads', $cropped, $attachment_id ); // For replication.
|
||||
|
||||
$parent_url = wp_get_attachment_url( $attachment_id );
|
||||
$url = str_replace( basename( $parent_url ), basename( $cropped ), $parent_url );
|
||||
$url = str_replace( wp_basename( $parent_url ), wp_basename( $cropped ), $parent_url );
|
||||
|
||||
$size = @getimagesize( $cropped );
|
||||
$image_type = ( $size ) ? $size['mime'] : 'image/jpeg';
|
||||
|
||||
$object = array(
|
||||
'post_title' => basename( $cropped ),
|
||||
'post_title' => wp_basename( $cropped ),
|
||||
'post_content' => $url,
|
||||
'post_mime_type' => $image_type,
|
||||
'guid' => $url,
|
||||
|
@ -85,14 +85,14 @@ class WP_Site_Icon {
|
||||
public function create_attachment_object( $cropped, $parent_attachment_id ) {
|
||||
$parent = get_post( $parent_attachment_id );
|
||||
$parent_url = wp_get_attachment_url( $parent->ID );
|
||||
$url = str_replace( basename( $parent_url ), basename( $cropped ), $parent_url );
|
||||
$url = str_replace( wp_basename( $parent_url ), wp_basename( $cropped ), $parent_url );
|
||||
|
||||
$size = @getimagesize( $cropped );
|
||||
$image_type = ( $size ) ? $size['mime'] : 'image/jpeg';
|
||||
|
||||
$object = array(
|
||||
'ID' => $parent_attachment_id,
|
||||
'post_title' => basename( $cropped ),
|
||||
'post_title' => wp_basename( $cropped ),
|
||||
'post_content' => $url,
|
||||
'post_mime_type' => $image_type,
|
||||
'guid' => $url,
|
||||
|
@ -33,7 +33,7 @@ function wp_image_editor( $post_id, $msg = false ) {
|
||||
$backup_sizes = get_post_meta( $post_id, '_wp_attachment_backup_sizes', true );
|
||||
$can_restore = false;
|
||||
if ( ! empty( $backup_sizes ) && isset( $backup_sizes['full-orig'], $meta['file'] ) ) {
|
||||
$can_restore = $backup_sizes['full-orig']['file'] != basename( $meta['file'] );
|
||||
$can_restore = $backup_sizes['full-orig']['file'] != wp_basename( $meta['file'] );
|
||||
}
|
||||
|
||||
if ( $msg ) {
|
||||
|
@ -47,7 +47,7 @@ function wp_crop_image( $src, $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, $s
|
||||
}
|
||||
|
||||
if ( ! $dst_file ) {
|
||||
$dst_file = str_replace( basename( $src_file ), 'cropped-' . basename( $src_file ), $src_file );
|
||||
$dst_file = str_replace( wp_basename( $src_file ), 'cropped-' . wp_basename( $src_file ), $src_file );
|
||||
}
|
||||
|
||||
/*
|
||||
@ -56,7 +56,7 @@ function wp_crop_image( $src, $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, $s
|
||||
*/
|
||||
wp_mkdir_p( dirname( $dst_file ) );
|
||||
|
||||
$dst_file = dirname( $dst_file ) . '/' . wp_unique_filename( dirname( $dst_file ), basename( $dst_file ) );
|
||||
$dst_file = dirname( $dst_file ) . '/' . wp_unique_filename( dirname( $dst_file ), wp_basename( $dst_file ) );
|
||||
|
||||
$result = $editor->save( $dst_file );
|
||||
if ( is_wp_error( $result ) ) {
|
||||
@ -189,7 +189,7 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) {
|
||||
$ext = '.png';
|
||||
break;
|
||||
}
|
||||
$basename = str_replace( '.', '-', basename( $file ) ) . '-image' . $ext;
|
||||
$basename = str_replace( '.', '-', wp_basename( $file ) ) . '-image' . $ext;
|
||||
$uploaded = wp_upload_bits( $basename, '', $metadata['image']['data'] );
|
||||
if ( false === $uploaded['error'] ) {
|
||||
$image_attachment = array(
|
||||
@ -711,8 +711,8 @@ function _copy_image_file( $attachment_id ) {
|
||||
}
|
||||
|
||||
if ( $src_file ) {
|
||||
$dst_file = str_replace( basename( $dst_file ), 'copy-' . basename( $dst_file ), $dst_file );
|
||||
$dst_file = dirname( $dst_file ) . '/' . wp_unique_filename( dirname( $dst_file ), basename( $dst_file ) );
|
||||
$dst_file = str_replace( wp_basename( $dst_file ), 'copy-' . wp_basename( $dst_file ), $dst_file );
|
||||
$dst_file = dirname( $dst_file ) . '/' . wp_unique_filename( dirname( $dst_file ), wp_basename( $dst_file ) );
|
||||
|
||||
/*
|
||||
* The directory containing the original file may no longer
|
||||
|
@ -99,7 +99,7 @@ function wp_import_handle_upload() {
|
||||
|
||||
// Construct the object array
|
||||
$object = array(
|
||||
'post_title' => basename( $upload['file'] ),
|
||||
'post_title' => wp_basename( $upload['file'] ),
|
||||
'post_content' => $upload['url'],
|
||||
'post_mime_type' => $upload['type'],
|
||||
'guid' => $upload['url'],
|
||||
|
@ -434,7 +434,7 @@ function media_handle_sideload( $file_array, $post_id, $desc = null, $post_data
|
||||
$url = $file['url'];
|
||||
$type = $file['type'];
|
||||
$file = $file['file'];
|
||||
$title = preg_replace( '/\.[^.]+$/', '', basename( $file ) );
|
||||
$title = preg_replace( '/\.[^.]+$/', '', wp_basename( $file ) );
|
||||
$content = '';
|
||||
|
||||
// Use image exif/iptc data for title and caption defaults if possible.
|
||||
@ -826,7 +826,7 @@ function wp_media_upload_handler() {
|
||||
if ( isset( $_POST['media_type'] ) && 'image' != $_POST['media_type'] ) {
|
||||
$title = esc_html( wp_unslash( $_POST['title'] ) );
|
||||
if ( empty( $title ) ) {
|
||||
$title = esc_html( basename( $src ) );
|
||||
$title = esc_html( wp_basename( $src ) );
|
||||
}
|
||||
|
||||
if ( $title && $src ) {
|
||||
@ -930,7 +930,7 @@ function media_sideload_image( $file, $post_id, $desc = null, $return = 'html' )
|
||||
}
|
||||
|
||||
$file_array = array();
|
||||
$file_array['name'] = basename( $matches[0] );
|
||||
$file_array['name'] = wp_basename( $matches[0] );
|
||||
|
||||
// Download file to temp location.
|
||||
$file_array['tmp_name'] = download_url( $file );
|
||||
|
@ -362,7 +362,7 @@ function wp_print_theme_file_tree( $tree, $level = 2, $size = 1, $index = 1 ) {
|
||||
aria-posinset="<?php echo esc_attr( $index ); ?>">
|
||||
<?php
|
||||
$file_description = esc_html( get_file_description( $filename ) );
|
||||
if ( $file_description !== $filename && basename( $filename ) !== $file_description ) {
|
||||
if ( $file_description !== $filename && wp_basename( $filename ) !== $file_description ) {
|
||||
$file_description .= '<br /><span class="nonessential">(' . esc_html( $filename ) . ')</span>';
|
||||
}
|
||||
|
||||
|
@ -138,7 +138,7 @@ if ( have_posts() ) {
|
||||
<div class="nav-next"><?php next_image_link( false ); ?></div>
|
||||
</div><!-- #nav-below -->
|
||||
<?php else : ?>
|
||||
<a href="<?php echo esc_url( wp_get_attachment_url() ); ?>" title="<?php the_title_attribute(); ?>" rel="attachment"><?php echo esc_html( basename( get_permalink() ) ); ?></a>
|
||||
<a href="<?php echo esc_url( wp_get_attachment_url() ); ?>" title="<?php the_title_attribute(); ?>" rel="attachment"><?php echo esc_html( wp_basename( get_permalink() ) ); ?></a>
|
||||
<?php endif; ?>
|
||||
</div><!-- .entry-attachment -->
|
||||
<div class="entry-caption">
|
||||
|
@ -1360,7 +1360,7 @@ final class WP_Customize_Manager {
|
||||
if ( ! $attachment_id ) {
|
||||
|
||||
// Copy file to temp location so that original file won't get deleted from theme after sideloading.
|
||||
$temp_file_name = wp_tempnam( basename( $file_path ) );
|
||||
$temp_file_name = wp_tempnam( wp_basename( $file_path ) );
|
||||
if ( $temp_file_name && copy( $file_path, $temp_file_name ) ) {
|
||||
$file_array['tmp_name'] = $temp_file_name;
|
||||
}
|
||||
@ -1621,7 +1621,7 @@ final class WP_Customize_Manager {
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
$file_name = basename( $attachment['file'] );
|
||||
$file_name = wp_basename( $attachment['file'] );
|
||||
|
||||
// Skip file types that are not recognized.
|
||||
$checked_filetype = wp_check_filetype( $file_name );
|
||||
@ -4594,7 +4594,7 @@ final class WP_Customize_Manager {
|
||||
|
||||
if ( $this->return_url ) {
|
||||
$return_url = $this->return_url;
|
||||
} elseif ( $referer && ! in_array( basename( parse_url( $referer, PHP_URL_PATH ) ), $excluded_referer_basenames, true ) ) {
|
||||
} elseif ( $referer && ! in_array( wp_basename( parse_url( $referer, PHP_URL_PATH ) ), $excluded_referer_basenames, true ) ) {
|
||||
$return_url = $referer;
|
||||
} elseif ( $this->preview_url ) {
|
||||
$return_url = $this->preview_url;
|
||||
|
@ -92,7 +92,7 @@ class WP_Customize_Media_Control extends WP_Customize_Control {
|
||||
'url' => $this->setting->default,
|
||||
'type' => $type,
|
||||
'icon' => wp_mime_type_icon( $type ),
|
||||
'title' => basename( $this->setting->default ),
|
||||
'title' => wp_basename( $this->setting->default ),
|
||||
);
|
||||
|
||||
if ( 'image' === $type ) {
|
||||
|
@ -1878,7 +1878,7 @@ function get_attachment_icon_src( $id = 0, $fullsize = false ) {
|
||||
if ( !$fullsize && $src = wp_get_attachment_thumb_url( $post->ID ) ) {
|
||||
// We have a thumbnail desired, specified and existing
|
||||
|
||||
$src_file = basename($src);
|
||||
$src_file = wp_basename($src);
|
||||
} elseif ( wp_attachment_is_image( $post->ID ) ) {
|
||||
// We have an image without a thumbnail
|
||||
|
||||
@ -1888,7 +1888,7 @@ function get_attachment_icon_src( $id = 0, $fullsize = false ) {
|
||||
// No thumb, no image. We'll look for a mime-related icon instead.
|
||||
|
||||
$icon_dir = apply_filters( 'icon_dir', get_template_directory() . '/images' );
|
||||
$src_file = $icon_dir . '/' . basename($src);
|
||||
$src_file = $icon_dir . '/' . wp_basename($src);
|
||||
}
|
||||
|
||||
if ( !isset($src) || !$src )
|
||||
@ -3058,7 +3058,7 @@ function remove_custom_background() {
|
||||
*/
|
||||
function get_theme_data( $theme_file ) {
|
||||
_deprecated_function( __FUNCTION__, '3.4.0', 'wp_get_theme()' );
|
||||
$theme = new WP_Theme( basename( dirname( $theme_file ) ), dirname( dirname( $theme_file ) ) );
|
||||
$theme = new WP_Theme( wp_basename( dirname( $theme_file ) ), dirname( dirname( $theme_file ) ) );
|
||||
|
||||
$theme_data = array(
|
||||
'Name' => $theme->get('Name'),
|
||||
|
@ -2096,7 +2096,7 @@ function wp_upload_dir( $time = null, $create_dir = true, $refresh_cache = false
|
||||
if ( 0 === strpos( $uploads['basedir'], ABSPATH ) ) {
|
||||
$error_path = str_replace( ABSPATH, '', $uploads['basedir'] ) . $uploads['subdir'];
|
||||
} else {
|
||||
$error_path = basename( $uploads['basedir'] ) . $uploads['subdir'];
|
||||
$error_path = wp_basename( $uploads['basedir'] ) . $uploads['subdir'];
|
||||
}
|
||||
|
||||
$uploads['error'] = sprintf(
|
||||
@ -2381,7 +2381,7 @@ function wp_upload_bits( $name, $deprecated, $bits, $time = null ) {
|
||||
if ( 0 === strpos( $upload['basedir'], ABSPATH ) ) {
|
||||
$error_path = str_replace( ABSPATH, '', $upload['basedir'] ) . $upload['subdir'];
|
||||
} else {
|
||||
$error_path = basename( $upload['basedir'] ) . $upload['subdir'];
|
||||
$error_path = wp_basename( $upload['basedir'] ) . $upload['subdir'];
|
||||
}
|
||||
|
||||
$message = sprintf(
|
||||
|
@ -2871,7 +2871,7 @@ function get_attachment_taxonomies( $attachment, $output = 'names' ) {
|
||||
}
|
||||
|
||||
$file = get_attached_file( $attachment->ID );
|
||||
$filename = basename( $file );
|
||||
$filename = wp_basename( $file );
|
||||
|
||||
$objects = array( 'attachment' );
|
||||
|
||||
|
@ -5474,7 +5474,7 @@ function wp_delete_attachment_files( $post_id, $meta, $backup_sizes, $file ) {
|
||||
if ( ! empty( $meta['thumb'] ) ) {
|
||||
// Don't delete the thumb if another attachment uses it.
|
||||
if ( ! $wpdb->get_row( $wpdb->prepare( "SELECT meta_id FROM $wpdb->postmeta WHERE meta_key = '_wp_attachment_metadata' AND meta_value LIKE %s AND post_id <> %d", '%' . $wpdb->esc_like( $meta['thumb'] ) . '%', $post_id ) ) ) {
|
||||
$thumbfile = str_replace( basename( $file ), $meta['thumb'], $file );
|
||||
$thumbfile = str_replace( wp_basename( $file ), $meta['thumb'], $file );
|
||||
if ( ! empty( $thumbfile ) ) {
|
||||
$thumbfile = path_join( $uploadpath['basedir'], $thumbfile );
|
||||
$thumbdir = path_join( $uploadpath['basedir'], dirname( $file ) );
|
||||
@ -5490,7 +5490,7 @@ function wp_delete_attachment_files( $post_id, $meta, $backup_sizes, $file ) {
|
||||
if ( isset( $meta['sizes'] ) && is_array( $meta['sizes'] ) ) {
|
||||
$intermediate_dir = path_join( $uploadpath['basedir'], dirname( $file ) );
|
||||
foreach ( $meta['sizes'] as $size => $sizeinfo ) {
|
||||
$intermediate_file = str_replace( basename( $file ), $sizeinfo['file'], $file );
|
||||
$intermediate_file = str_replace( wp_basename( $file ), $sizeinfo['file'], $file );
|
||||
if ( ! empty( $intermediate_file ) ) {
|
||||
$intermediate_file = path_join( $uploadpath['basedir'], $intermediate_file );
|
||||
|
||||
@ -5616,7 +5616,7 @@ function wp_get_attachment_url( $attachment_id = 0 ) {
|
||||
$url = str_replace( $uploads['basedir'], $uploads['baseurl'], $file );
|
||||
} elseif ( false !== strpos( $file, 'wp-content/uploads' ) ) {
|
||||
// Get the directory name relative to the basedir (back compat for pre-2.7 uploads)
|
||||
$url = trailingslashit( $uploads['baseurl'] . '/' . _wp_get_attachment_relative_path( $file ) ) . basename( $file );
|
||||
$url = trailingslashit( $uploads['baseurl'] . '/' . _wp_get_attachment_relative_path( $file ) ) . wp_basename( $file );
|
||||
} else {
|
||||
// It's a newly-uploaded file, therefore $file is relative to the basedir.
|
||||
$url = $uploads['baseurl'] . "/$file";
|
||||
@ -5704,7 +5704,7 @@ function wp_get_attachment_thumb_file( $post_id = 0 ) {
|
||||
|
||||
$file = get_attached_file( $post->ID );
|
||||
|
||||
if ( ! empty( $imagedata['thumb'] ) && ( $thumbfile = str_replace( basename( $file ), $imagedata['thumb'], $file ) ) && file_exists( $thumbfile ) ) {
|
||||
if ( ! empty( $imagedata['thumb'] ) && ( $thumbfile = str_replace( wp_basename( $file ), $imagedata['thumb'], $file ) ) && file_exists( $thumbfile ) ) {
|
||||
/**
|
||||
* Filters the attachment thumbnail file path.
|
||||
*
|
||||
@ -5744,7 +5744,7 @@ function wp_get_attachment_thumb_url( $post_id = 0 ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$url = str_replace( basename( $url ), basename( $thumb ), $url );
|
||||
$url = str_replace( wp_basename( $url ), wp_basename( $thumb ), $url );
|
||||
|
||||
/**
|
||||
* Filters the attachment thumbnail URL.
|
||||
@ -5896,7 +5896,7 @@ function wp_mime_type_icon( $mime = 0 ) {
|
||||
$uri = array_shift( $dirs );
|
||||
if ( $dh = opendir( $dir ) ) {
|
||||
while ( false !== $file = readdir( $dh ) ) {
|
||||
$file = basename( $file );
|
||||
$file = wp_basename( $file );
|
||||
if ( substr( $file, 0, 1 ) == '.' ) {
|
||||
continue;
|
||||
}
|
||||
@ -5915,9 +5915,9 @@ function wp_mime_type_icon( $mime = 0 ) {
|
||||
}
|
||||
|
||||
$types = array();
|
||||
// Icon basename - extension = MIME wildcard.
|
||||
// Icon wp_basename - extension = MIME wildcard.
|
||||
foreach ( $icon_files as $file => $uri ) {
|
||||
$types[ preg_replace( '/^([^.]*).*$/', '$1', basename( $file ) ) ] =& $icon_files[ $file ];
|
||||
$types[ preg_replace( '/^([^.]*).*$/', '$1', wp_basename( $file ) ) ] =& $icon_files[ $file ];
|
||||
}
|
||||
|
||||
if ( ! empty( $mime ) ) {
|
||||
|
@ -114,7 +114,7 @@ class WP_REST_Attachments_Controller extends WP_REST_Posts_Controller {
|
||||
return $file;
|
||||
}
|
||||
|
||||
$name = basename( $file['file'] );
|
||||
$name = wp_basename( $file['file'] );
|
||||
$name_parts = pathinfo( $name );
|
||||
$name = trim( substr( $name, 0, -( 1 + strlen( $name_parts['extension'] ) ) ) );
|
||||
|
||||
@ -143,7 +143,7 @@ class WP_REST_Attachments_Controller extends WP_REST_Posts_Controller {
|
||||
$attachment->guid = $url;
|
||||
|
||||
if ( empty( $attachment->post_title ) ) {
|
||||
$attachment->post_title = preg_replace( '/\.[^.]+$/', '', basename( $file ) );
|
||||
$attachment->post_title = preg_replace( '/\.[^.]+$/', '', wp_basename( $file ) );
|
||||
}
|
||||
|
||||
// $post_parent is inherited from $attachment['post_parent'].
|
||||
|
@ -13,7 +13,7 @@
|
||||
*
|
||||
* @global string $wp_version
|
||||
*/
|
||||
$wp_version = '5.2-alpha-44784';
|
||||
$wp_version = '5.2-alpha-44785';
|
||||
|
||||
/**
|
||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||
|
Loading…
Reference in New Issue
Block a user