php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #35998 getPathname() method always returns unix style filenames.
Submitted: 2006-01-13 17:07 UTC Modified: 2006-01-16 09:44 UTC
From: rquadling at gmail dot com Assigned: helly (profile)
Status: Closed Package: SPL related
PHP Version: 5.1.2 OS: Win*
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 you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: rquadling at gmail dot com
New email:
PHP Version: OS:

 

 [2006-01-13 17:07 UTC] rquadling at gmail dot com
Description:
------------
The pathnames returned by DirectoryIterator::getPathname() are always with '/'. Which is no good for windows.

In /* $Id: spl_directory.c,v 1.63 2006/01/01 13:09:54 sniper Exp $ */ Line 165 the culprit is the "%s/%s".

Ideally the filename should come back appropriate to the DEFAULT_SLASH constant defined in tsrm_virtual_cwd.h

This constant is controlled by compiler directive TSRM_WIN32.

This is used in realpath which the PHP code below demonstrates.



Reproduce code:
---------------
<?php
foreach(new DirectoryIterator('C:\\') as $o_FILE)
	{
	echo $o_FILE->getPathname() . "\t" . realpath($o_FILE->getPathname()) . "\n";
	}
?>


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-01-13 17:48 UTC] tony2001@php.net
Assigned to the maintainer.
 [2006-01-13 20:37 UTC] helly@php.net
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.

Not that it buys you anything besides what you are typically used to see.
 [2006-01-16 09:44 UTC] rquadling at gmail dot com
Exactly. I use a LOT of PHP scripts to activate other Windows applications which can only understand the \ and not the / and when giving the filename to a user in a report ("The file you are looking for is called ..."), the users will only follow what you tell them!

Thanks for fixing it though. Saves me 1 function call per filename. Which will be a lot over time.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Nov 21 14:01:29 2024 UTC