Opened 13 years ago
Closed 13 years ago
#22138 closed defect (bug) (fixed)
wp_basename wrong on Windows Systems
| Reported by: |
|
Owned by: |
|
|---|---|---|---|
| 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)
#2
@
13 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
@
13 years ago
- Summary changed from wp_basname wrong on Windows Systems to wp_basename wrong on Windows Systems
#6
@
13 years ago
- Keywords needs-unit-tests removed
I added unit tests for wp_basename for this situation.
#7
@
13 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 ); }