#48361 [Com]: SplFileInfo::getPathinfo no returning info of path
| From: | tomasz dot kotecki at gmail dot com | Date: | Wed, 19 Aug 2009 15:30:07 +0000 |
| Subject: | #48361 [Com]: SplFileInfo::getPathinfo no returning info of path | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-141245@lists.php.net to get a copy of this message | ||
ID: 48361
Comment by: tomasz dot kotecki at gmail dot com
Reported By: petercowburn at gmail dot com
Status: Assigned
Bug Type: SPL related
Operating System: OS X
PHP Version: 5.3.0RC2
Assigned To: colder
New Comment:
This could be related... using 5.3.0. Using example from
http://uk3.php.net/manual/en/splfileinfo.getpath.php
<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->getPath());
$info = new SplFileInfo('/usr/');
var_dump($info->getPath());?>
expected result:
----------------
string(8) "/usr/bin"
string(4) "/usr"
actual result:
--------------
string(8) "/usr/bin"
string(0) ""
Previous Comments:
------------------------------------------------------------------------
[2009-06-16 22:24:03] petercowburn at gmail dot com
I downloaded a recent snap of PHP 5.3 (200906162030) which gives me PHP
5.3.0RC4 and amended the method definition which was using
spl_filesystem_object_get_pathname rather than
spl_filesystem_object_get_path. With that function name changed, the
call to SplFileInfo::getPathInfo now appears to work as expected from
the description given in the documentation.
Reproduce code:
---------------
<?php
$info = new SplFileInfo('/usr/bin/php');
$parent_info = $info->getPathInfo();
var_dump($parent_info->getRealPath());
?>
Expected result:
----------------
string(8) "/usr/bin"
Actual result:
----------------
string(8) "/usr/bin"
Diff file:
----------
Index: spl_directory.c
===================================================================
RCS file: /repository/php-src/ext/spl/spl_directory.c,v
retrieving revision 1.45.2.27.2.23.2.43
diff -u -u -r1.45.2.27.2.23.2.43 spl_directory.c
--- spl_directory.c 4 Jun 2009 14:46:26 -0000 1.45.2.27.2.23.2.43
+++ spl_directory.c 16 Jun 2009 22:13:45 -0000
@@ -1176,7 +1176,7 @@
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) ==
SUCCESS) {
int path_len;
- char *path = spl_filesystem_object_get_pathname(intern, &path_len
TSRMLS_CC);
+ char *path = spl_filesystem_object_get_path(intern, &path_len
TSRMLS_CC);
if (path) {
spl_filesystem_object_create_info(intern, path, path_len, 1, ce,
return_value TSRMLS_CC);
}
------------------------------------------------------------------------
[2009-05-22 10:30:21] petercowburn at gmail dot com
Description:
------------
It appears that using PHP5.3.0RC2-dev the SplFileInfo::getPathinfo
method just returns the SplFileInfo object on which it was called rather
than an SplFileInfo object for its path.
Reproduce code:
---------------
<?php
$info = new SplFileInfo('/usr/bin/php');
$parent_info = $info->getPathInfo();
var_dump($parent_info->getRealPath());
?>
Expected result:
----------------
string(8) "/usr/bin"
Actual result:
--------------
string(12) "/usr/bin/php"
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=48361&edit=1