wpcf7_antiscript_file_name()
Converts a file name to one that is not executable as a script.
Хуков нет.
Возвращает
string. Converted file name.
Использование
wpcf7_antiscript_file_name( $filename );
- $filename(строка) (обязательный)
- File name.
Код wpcf7_antiscript_file_name() wpcf7 antiscript file name CF7 6.2.4.1
function wpcf7_antiscript_file_name( $filename ) {
$filename = wp_scrub_utf8( $filename );
$filename = wpcf7_strip_whitespaces( $filename );
$filename = wp_basename( $filename );
// Apply part of protection logic from sanitize_file_name().
$filename = str_replace(
array(
'?', '[', ']', '/', '\\', '=', '<', '>', ':', ';', ',', "'", '"',
'&', '$', '#', '*', '(', ')', '|', '~', '`', '!', '{', '}',
'%', '+', '’', '«', '»', '”', '“', chr( 0 )
),
'',
$filename
);
$whitespaces = '\x09-\x0D\x20\xA0\x{1680}\x{2000}-\x{200A}\x{2028}\x{2029}\x{202F}\x{205F}\x{3000}\x{FEFF}';
$filename = preg_replace(
sprintf( '/[%s-]+/u', $whitespaces ), '-', $filename
);
$filename = preg_replace( '/[\pC\pZ]+/iu', '', $filename );
$parts = explode( '.', $filename );
if ( count( $parts ) < 2 ) {
return $filename;
}
$ext_safelist = wpcf7_file_extension_safelist();
$filename = array_shift( $parts );
$extension = array_pop( $parts );
foreach ( $parts as $part ) {
if ( ! in_array( strtolower( $part ), $ext_safelist, true ) ) {
$filename .= '.' . $part . '_';
} else {
$filename .= '.' . $part;
}
}
if ( ! in_array( strtolower( $extension ), $ext_safelist, true ) ) {
$filename .= '.' . $extension . '_.txt';
} else {
$filename .= '.' . $extension;
}
return $filename;
}