Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/contact-.../includes/swv/php/rules
File: file.php
<?php
[0] Fix | Delete
[1] Fix | Delete
namespace Contactable\SWV;
[2] Fix | Delete
[3] Fix | Delete
class FileRule extends Rule {
[4] Fix | Delete
[5] Fix | Delete
const rule_name = 'file';
[6] Fix | Delete
[7] Fix | Delete
public function matches( $context ) {
[8] Fix | Delete
if ( false === parent::matches( $context ) ) {
[9] Fix | Delete
return false;
[10] Fix | Delete
}
[11] Fix | Delete
[12] Fix | Delete
if ( empty( $context['file'] ) ) {
[13] Fix | Delete
return false;
[14] Fix | Delete
}
[15] Fix | Delete
[16] Fix | Delete
return true;
[17] Fix | Delete
}
[18] Fix | Delete
[19] Fix | Delete
public function validate( $context ) {
[20] Fix | Delete
$field = $this->get_property( 'field' );
[21] Fix | Delete
$input = $_FILES[$field]['name'] ?? '';
[22] Fix | Delete
$input = wpcf7_array_flatten( $input );
[23] Fix | Delete
$input = wpcf7_exclude_blank( $input );
[24] Fix | Delete
[25] Fix | Delete
$acceptable_filetypes = array();
[26] Fix | Delete
[27] Fix | Delete
foreach ( (array) $this->get_property( 'accept' ) as $accept ) {
[28] Fix | Delete
if ( preg_match( '/^\.[a-z0-9]+$/i', $accept ) ) {
[29] Fix | Delete
$acceptable_filetypes[] = strtolower( $accept );
[30] Fix | Delete
} else {
[31] Fix | Delete
foreach ( wpcf7_convert_mime_to_ext( $accept ) as $ext ) {
[32] Fix | Delete
$acceptable_filetypes[] = sprintf(
[33] Fix | Delete
'.%s',
[34] Fix | Delete
strtolower( trim( $ext, ' .' ) )
[35] Fix | Delete
);
[36] Fix | Delete
}
[37] Fix | Delete
}
[38] Fix | Delete
}
[39] Fix | Delete
[40] Fix | Delete
$acceptable_filetypes = array_unique( $acceptable_filetypes );
[41] Fix | Delete
[42] Fix | Delete
foreach ( $input as $i ) {
[43] Fix | Delete
$last_period_pos = strrpos( $i, '.' );
[44] Fix | Delete
[45] Fix | Delete
if ( false === $last_period_pos ) { // no period
[46] Fix | Delete
return $this->create_error();
[47] Fix | Delete
}
[48] Fix | Delete
[49] Fix | Delete
$suffix = strtolower( substr( $i, $last_period_pos ) );
[50] Fix | Delete
[51] Fix | Delete
if ( ! in_array( $suffix, $acceptable_filetypes, true ) ) {
[52] Fix | Delete
return $this->create_error();
[53] Fix | Delete
}
[54] Fix | Delete
}
[55] Fix | Delete
[56] Fix | Delete
return true;
[57] Fix | Delete
}
[58] Fix | Delete
[59] Fix | Delete
}
[60] Fix | Delete
[61] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function