_wp_check_existing_file_names( string $filename, array $files ): bool

In this article

This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.

Helper function to check if a file name could match an existing image sub-size file name.


The file name to check.
An array of existing files in the directory.


bool True if the tested file name could match an existing file, false otherwise.


function _wp_check_existing_file_names( $filename, $files ) {
	$fname = pathinfo( $filename, PATHINFO_FILENAME );
	$ext   = pathinfo( $filename, PATHINFO_EXTENSION );

	// Edge case, file names like `.ext`.
	if ( empty( $fname ) ) {
		return false;

	if ( $ext ) {
		$ext = ".$ext";

	$regex = '/^' . preg_quote( $fname ) . '-(?:\d+x\d+|scaled|rotated)' . preg_quote( $ext ) . '$/i';

	foreach ( $files as $file ) {
		if ( preg_match( $regex, $file ) ) {
			return true;

	return false;



User Contributed Notes

You must log in before being able to contribute a note or feedback.