Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




wp_unique_filename [ WordPress Function ]

wp_unique_filename ( $dir, $filename, $unique_filename_callback = null )
Parameters:
  • (string) $dir
  • (string) $filename
  • (mixed) $unique_filename_callback Callback.
Returns:
  • (string) New filename, if given wasn't unique.
Defined at:



Get a filename that is sanitized and unique for the given directory.

If the filename is not unique, then a number will be added to the filename before the extension, and will continue adding numbers until the filename is unique.

The callback is passed three parameters, the first one is the directory, the second is the filename, and the third is the extension.

Source


<?php
function wp_unique_filename$dir$filename$unique_filename_callback null ) {
    
// sanitize the file name before we begin processing
    
$filename sanitize_file_name($filename);

    
// separate the filename into a name and extension
    
$info pathinfo($filename);
    
$ext = !empty($info['extension']) ? '.' $info['extension'] : '';
    
$name basename($filename$ext);

    
// edge case: if file is named '.ext', treat as an empty name
    
if ( $name === $ext )
        
$name '';

    
// Increment the file number until we have a unique file to save in $dir. Use callback if supplied.
    
if ( $unique_filename_callback && is_callable$unique_filename_callback ) ) {
        
$filename call_user_func$unique_filename_callback$dir$name$ext );
    } else {
        
$number '';

        
// change '.ext' to lower case
        
if ( $ext && strtolower($ext) != $ext ) {
            
$ext2 strtolower($ext);
            
$filename2 preg_replace'|' preg_quote($ext) . '$|'$ext2$filename );

            
// check for both lower and upper case extension or image sub-sizes may be overwritten
            
while ( file_exists($dir "/$filename") || file_exists($dir "/$filename2") ) {
                
$new_number $number 1;
                
$filename str_replace"$number$ext""$new_number$ext"$filename );
                
$filename2 str_replace"$number$ext2""$new_number$ext2"$filename2 );
                
$number $new_number;
            }
            return 
$filename2;
        }

        while ( 
file_exists$dir "/$filename) ) {
            if ( 
'' == "$number$ext)
                
$filename $filename . ++$number $ext;
            else
                
$filename str_replace"$number$ext", ++$number $ext$filename );
        }
    }

    return 
$filename;
}
?>

Examples [ wp-snippets.com ]

Google Arama Sonuçlarý

Dahasý ...

0 User Note(s)

Henüz yok. Ýlk sen ol!

Yeni Ekle ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics