wpseek.com
A WordPress-centric search engine for devs and theme authors
wp_normalize_path › WordPress Function
Since3.9.0
Deprecatedn/a
› wp_normalize_path ( $path )
| Parameters: |
|
| Returns: |
|
| Defined at: |
|
| Codex: | |
| Change Log: |
|
Normalizes a filesystem path.
On windows systems, replaces backslashes with forward slashes and forces upper-case drive letters. Allows for two leading slashes for Windows network shares, but ensures that all other duplicate slashes are reduced to a single.Source
function wp_normalize_path( $path ): string {
$path = (string) $path;
static $cache = array();
if ( isset( $cache[ $path ] ) ) {
return $cache[ $path ];
}
$original_path = $path;
$wrapper = '';
if ( wp_is_stream( $path ) ) {
list( $wrapper, $path ) = explode( '://', $path, 2 );
$wrapper .= '://';
}
// Standardize all paths to use '/'.
$path = str_replace( '\\', '/', $path );
// Replace multiple slashes down to a singular, allowing for network shares having two slashes.
$path = (string) preg_replace( '|(?<=.)/+|', '/', $path );
// Windows paths should uppercase the drive letter.
if ( ':' === substr( $path, 1, 1 ) ) {
$path = ucfirst( $path );
}
$cache[ $original_path ] = $wrapper . $path;
return $cache[ $original_path ];
}