Opened 12 years ago
Closed 12 years ago
#22138 closed defect (bug) (fixed)
wp_basename wrong on Windows Systems
Reported by: | sebber | Owned by: | ryan |
---|---|---|---|
Milestone: | 3.5 | Priority: | normal |
Severity: | normal | Version: | 3.4.2 |
Component: | Formatting | Keywords: | has-patch commit |
Focuses: | Cc: |
Description
On Windows System the Directory Seperator is \ instead of Unix /.
So the urlencode in wp_basename() encodes the \ and it is not removed in basename().
WP_basename is not working properly on Windows Systems.
Just take a look in the Support Forum:
http://wordpress.org/support/topic/function-wp_basename-is-wrong-in-windows?replies=3
Attachments (1)
Change History (11)
#1
@
12 years ago
Version 0, edited 12 years ago
by
(next)
#2
@
12 years ago
- Keywords has-patch needs-unit-tests added; needs-patch removed
- Milestone changed from Awaiting Review to 3.5
Confirmed. wp_basename()
is mostly used on attachment URLs in core, which is why, I guess, we didn't catch this earlier.
#3
@
12 years ago
- Summary changed from wp_basname wrong on Windows Systems to wp_basename wrong on Windows Systems
#6
@
12 years ago
- Keywords needs-unit-tests removed
I added unit tests for wp_basename for this situation.
#7
@
12 years ago
Obviously, I also tested, and 22138.patch works.
Note: See
TracTickets for help on using
tickets.
Possible Resolution:
function wp_basename( $path, $suffix = ) {
$path = str_replace( '\', '/', $path );
$path = str_replace( '%2F', '/', urlencode( $path ) );
return urldecode( basename( $path ), $suffix );
}