php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #10916 OS-independent path parsing
Submitted: 2001-05-16 23:37 UTC Modified: 2016-08-06 04:34 UTC
Votes:4
Avg. Score:3.2 ± 1.5
Reproduced:2 of 3 (66.7%)
Same Version:0 (0.0%)
Same OS:0 (0.0%)
From: mark at arcabama dot com Assigned:
Status: Wont fix Package: Filesystem function related
PHP Version: * OS: *
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If this is not your bug, you can add a comment by following this link.
If this is your bug, but you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: mark at arcabama dot com
New email:
PHP Version: OS:

 

 [2001-05-16 23:37 UTC] mark at arcabama dot com
I've looked for something like this in the existing function suite but haven't found it...

Because Windoze and Linux (at least) use different characters to separate elements of a file path, I think a function that parses a path into an array of subdirectories, basename and extension would be useful.

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2010-12-17 12:31 UTC] jani@php.net
-Summary: (Feature Request) OS-independent path parsing +Summary: OS-independent path parsing -Package: Feature/Change Request +Package: Filesystem function related -Operating System: Linux 2.2.18 +Operating System: * -PHP Version: 4.0.4pl1 +PHP Version: *
 [2012-02-29 09:23 UTC] johnnybifter at gmail dot com
I doubt this will ever appear in the language as it sounds more like a library 
function.
try using this for the OS-independent path parsing
    explode(DIRECTORY_SEPARATOR, $path);
 [2016-08-06 04:34 UTC] kalle@php.net
-Status: Open +Status: Wont fix
 [2016-08-06 04:34 UTC] kalle@php.net
Agreed, this sounds more like a library function that is better suited to be implemented in userland code.

We do have some cross OS compatible constants to help on that part:

DIRECTORY_SEPARATOR
PATH_SEPARATOR
PHP_SHLIB_SUFFIX

realpath() might also provide useful, as it normalizes a path to the OS path, meaning that:
realpath('/windows/system32')

Will convert into (on Windows):
%SystemDrive%\Windows\System32

And parse like that, second alternative we have is pathinfo() which does not validate the actual path but just parses it and works on any OS path, even mixes afair
 
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Mon Jul 15 22:01:26 2019 UTC