WordPress Version: 5.5
/**
* Helper function to check if a file name could match an existing image sub-size file name.
*
* @since 5.3.1
* @access private
*
* @param string $filename The file name to check.
* @param array $files An array of existing files in the directory.
* @return 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;
}