Code Modernization: Replace usage of substr() with str_starts_with() and str_ends_with().
`str_starts_with()` and `str_ends_with()` were introduced in PHP 8.0 to perform a case-sensitive check indicating if the string to search in (haystack) begins or ends with the given substring (needle). WordPress core includes a polyfill for these functions on PHP < 8.0 as of WordPress 5.9. This commit uses `str_starts_with()` and `str_ends_with()` in core files where appropriate: * `$needle === substr( $string, 0, $length )`, where `$length` is the length of `$needle`, is replaced with `str_starts_with( $haystack, $needle )`. * `$needle === substr( $string, $offset )`, where `$offset` is negative and the absolute value of `$offset` is the length of `$needle`, is replaced with `str_ends_with( $haystack, $needle )`. This aims to make the code more readable and consistent, as well as better aligned with modern development practices. Follow-up to [52039], [52040], [52326], [55703], [55710], [55987], [55988]. Props Soean, spacedmonkey, Clorith, ocean90, azaozz, sabernhardt, SergeyBiryukov. Fixes #58220. Built from https://develop.svn.wordpress.org/trunk@55990 git-svn-id: http://core.svn.wordpress.org/trunk@55502 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
@@ -294,7 +294,7 @@ function get_plugins( $plugin_folder = '' ) {
|
||||
|
||||
if ( $plugins_dir ) {
|
||||
while ( ( $file = readdir( $plugins_dir ) ) !== false ) {
|
||||
if ( '.' === substr( $file, 0, 1 ) ) {
|
||||
if ( str_starts_with( $file, '.' ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -303,11 +303,11 @@ function get_plugins( $plugin_folder = '' ) {
|
||||
|
||||
if ( $plugins_subdir ) {
|
||||
while ( ( $subfile = readdir( $plugins_subdir ) ) !== false ) {
|
||||
if ( '.' === substr( $subfile, 0, 1 ) ) {
|
||||
if ( str_starts_with( $subfile, '.' ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( '.php' === substr( $subfile, -4 ) ) {
|
||||
if ( str_ends_with( $subfile, '.php' ) ) {
|
||||
$plugin_files[] = "$file/$subfile";
|
||||
}
|
||||
}
|
||||
@@ -315,7 +315,7 @@ function get_plugins( $plugin_folder = '' ) {
|
||||
closedir( $plugins_subdir );
|
||||
}
|
||||
} else {
|
||||
if ( '.php' === substr( $file, -4 ) ) {
|
||||
if ( str_ends_with( $file, '.php' ) ) {
|
||||
$plugin_files[] = $file;
|
||||
}
|
||||
}
|
||||
@@ -371,7 +371,7 @@ function get_mu_plugins() {
|
||||
$plugins_dir = @opendir( WPMU_PLUGIN_DIR );
|
||||
if ( $plugins_dir ) {
|
||||
while ( ( $file = readdir( $plugins_dir ) ) !== false ) {
|
||||
if ( '.php' === substr( $file, -4 ) ) {
|
||||
if ( str_ends_with( $file, '.php' ) ) {
|
||||
$plugin_files[] = $file;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user