mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-06-28 22:30:04 +00:00
Code Modernization: Replace usage of strpos() with str_contains().
`str_contains()` was introduced in PHP 8.0 to perform a case-sensitive check indicating if the string to search in (haystack) contains the given substring (needle). WordPress core includes a polyfill for `str_contains()` on PHP < 8.0 as of WordPress 5.9. This commit replaces `false !== strpos( ... )` with `str_contains()` in core files, making the code more readable and consistent, as well as better aligned with modern development practices. Follow-up to [52039], [52040], [52326], [55703], [55710], [55987]. Props Soean, spacedmonkey, costdev, dingo_d, azaozz, mikeschroder, flixos90, peterwilsoncc, SergeyBiryukov. Fixes #58206. git-svn-id: https://develop.svn.wordpress.org/trunk@55988 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -708,7 +708,7 @@ function is_serialized( $data, $strict = true ) {
|
||||
if ( '"' !== substr( $data, -2, 1 ) ) {
|
||||
return false;
|
||||
}
|
||||
} elseif ( false === strpos( $data, '"' ) ) {
|
||||
} elseif ( ! str_contains( $data, '"' ) ) {
|
||||
return false;
|
||||
}
|
||||
// Or else fall through.
|
||||
@@ -1158,10 +1158,10 @@ function add_query_arg( ...$args ) {
|
||||
$protocol = '';
|
||||
}
|
||||
|
||||
if ( strpos( $uri, '?' ) !== false ) {
|
||||
if ( str_contains( $uri, '?' ) ) {
|
||||
list( $base, $query ) = explode( '?', $uri, 2 );
|
||||
$base .= '?';
|
||||
} elseif ( $protocol || strpos( $uri, '=' ) === false ) {
|
||||
} elseif ( $protocol || ! str_contains( $uri, '=' ) ) {
|
||||
$base = $uri . '?';
|
||||
$query = '';
|
||||
} else {
|
||||
@@ -2054,7 +2054,7 @@ function wp_mkdir_p( $target ) {
|
||||
}
|
||||
|
||||
// Do not allow path traversals.
|
||||
if ( false !== strpos( $target, '../' ) || false !== strpos( $target, '..' . DIRECTORY_SEPARATOR ) ) {
|
||||
if ( str_contains( $target, '../' ) || str_contains( $target, '..' . DIRECTORY_SEPARATOR ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2641,7 +2641,7 @@ function wp_unique_filename( $dir, $filename, $unique_filename_callback = null )
|
||||
$count = 10000;
|
||||
|
||||
// The (resized) image files would have name and extension, and will be in the uploads dir.
|
||||
if ( $name && $ext && @is_dir( $dir ) && false !== strpos( $dir, $upload_dir['basedir'] ) ) {
|
||||
if ( $name && $ext && @is_dir( $dir ) && str_contains( $dir, $upload_dir['basedir'] ) ) {
|
||||
/**
|
||||
* Filters the file list used for calculating a unique filename for a newly added file.
|
||||
*
|
||||
@@ -4656,7 +4656,7 @@ function _mce_set_direction( $mce_init ) {
|
||||
$mce_init['directionality'] = 'rtl';
|
||||
$mce_init['rtl_ui'] = true;
|
||||
|
||||
if ( ! empty( $mce_init['plugins'] ) && strpos( $mce_init['plugins'], 'directionality' ) === false ) {
|
||||
if ( ! empty( $mce_init['plugins'] ) && ! str_contains( $mce_init['plugins'], 'directionality' ) ) {
|
||||
$mce_init['plugins'] .= ',directionality';
|
||||
}
|
||||
|
||||
@@ -5968,13 +5968,13 @@ function apache_mod_loaded( $mod, $default_value = false ) {
|
||||
|
||||
if ( empty( $loaded_mods )
|
||||
&& function_exists( 'phpinfo' )
|
||||
&& false === strpos( ini_get( 'disable_functions' ), 'phpinfo' )
|
||||
&& ! str_contains( ini_get( 'disable_functions' ), 'phpinfo' )
|
||||
) {
|
||||
ob_start();
|
||||
phpinfo( INFO_MODULES );
|
||||
$phpinfo = ob_get_clean();
|
||||
|
||||
if ( false !== strpos( $phpinfo, $mod ) ) {
|
||||
if ( str_contains( $phpinfo, $mod ) ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -6049,7 +6049,7 @@ function validate_file( $file, $allowed_files = array() ) {
|
||||
}
|
||||
|
||||
// `../` which does not occur at the end of the path is not allowed:
|
||||
if ( false !== strpos( $file, '../' ) && '../' !== mb_substr( $file, -3, 3 ) ) {
|
||||
if ( str_contains( $file, '../' ) && '../' !== mb_substr( $file, -3, 3 ) ) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -6104,7 +6104,7 @@ function wp_guess_url() {
|
||||
$script_filename_dir = dirname( $_SERVER['SCRIPT_FILENAME'] );
|
||||
|
||||
// The request is for the admin.
|
||||
if ( strpos( $_SERVER['REQUEST_URI'], 'wp-admin' ) !== false || strpos( $_SERVER['REQUEST_URI'], 'wp-login.php' ) !== false ) {
|
||||
if ( strpos( $_SERVER['REQUEST_URI'], 'wp-admin' ) !== false || str_contains( $_SERVER['REQUEST_URI'], 'wp-login.php' ) ) {
|
||||
$path = preg_replace( '#/(wp-admin/?.*|wp-login\.php.*)#i', '', $_SERVER['REQUEST_URI'] );
|
||||
|
||||
// The request is for a file in ABSPATH.
|
||||
@@ -6113,12 +6113,12 @@ function wp_guess_url() {
|
||||
$path = preg_replace( '#/[^/]*$#i', '', $_SERVER['PHP_SELF'] );
|
||||
|
||||
} else {
|
||||
if ( false !== strpos( $_SERVER['SCRIPT_FILENAME'], $abspath_fix ) ) {
|
||||
if ( str_contains( $_SERVER['SCRIPT_FILENAME'], $abspath_fix ) ) {
|
||||
// Request is hitting a file inside ABSPATH.
|
||||
$directory = str_replace( ABSPATH, '', $script_filename_dir );
|
||||
// Strip off the subdirectory, and any file/query params.
|
||||
$path = preg_replace( '#/' . preg_quote( $directory, '#' ) . '/[^/]*$#i', '', $_SERVER['REQUEST_URI'] );
|
||||
} elseif ( false !== strpos( $abspath_fix, $script_filename_dir ) ) {
|
||||
} elseif ( str_contains( $abspath_fix, $script_filename_dir ) ) {
|
||||
// Request is hitting a file above ABSPATH.
|
||||
$subdirectory = substr( $abspath_fix, strpos( $abspath_fix, $script_filename_dir ) + strlen( $script_filename_dir ) );
|
||||
// Strip off any file/query params from the path, appending the subdirectory to the installation.
|
||||
@@ -7104,9 +7104,9 @@ function _device_can_upload() {
|
||||
|
||||
$ua = $_SERVER['HTTP_USER_AGENT'];
|
||||
|
||||
if ( strpos( $ua, 'iPhone' ) !== false
|
||||
|| strpos( $ua, 'iPad' ) !== false
|
||||
|| strpos( $ua, 'iPod' ) !== false ) {
|
||||
if ( str_contains( $ua, 'iPhone' )
|
||||
|| str_contains( $ua, 'iPad' )
|
||||
|| str_contains( $ua, 'iPod' ) ) {
|
||||
return preg_match( '#OS ([\d_]+) like Mac OS X#', $ua, $version ) && version_compare( $version[1], '6', '>=' );
|
||||
}
|
||||
|
||||
@@ -8510,8 +8510,8 @@ function clean_dirsize_cache( $path ) {
|
||||
}
|
||||
|
||||
if (
|
||||
strpos( $path, '/' ) === false &&
|
||||
strpos( $path, '\\' ) === false
|
||||
! str_contains( $path, '/' ) &&
|
||||
! str_contains( $path, '\\' )
|
||||
) {
|
||||
unset( $directory_cache[ $path ] );
|
||||
set_transient( 'dirsize_cache', $directory_cache );
|
||||
|
||||
Reference in New Issue
Block a user