Bug #53460 [Fbk->Opn]: glob() returns false for a pattern that matches zero files

From: Date: Fri, 03 Dec 2010 16:41:28 +0000
Subject: Bug #53460 [Fbk->Opn]: glob() returns false for a pattern that matches zero files
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-156732@lists.php.net to get a copy of this message
Edit report at http://bugs.php.net/bug.php?id=53460&edit=1

 ID:                 53460
 User updated by:    cameel2+php at gmail dot com
 Reported by:        cameel2+php at gmail dot com
 Summary:            glob() returns false for a pattern that matches zero
                     files
-Status:             Feedback
+Status:             Open
 Type:               Bug
 Package:            Filesystem function related
 Operating System:   Arch Linux
 PHP Version:        5.3.3
 Block user comment: N
 Private report:     N

 New Comment:

Yeah, I meant that since I tested it under Apache first and that
directory is located in /srv/http, i.e. in the root directory of the
server.

But you're right - for php being run from command line I should have
used relative path. Still, when I remove the leading slash and run 

cd /srv/http; php test.php

the result is still false.

This is a contrived example anyway. Originally I have noticed it in a
more complex path. 

If I do

touch /srv/http/phpMyAdmin/a.file

the script starts printing 'array'.


Previous Comments:
------------------------------------------------------------------------
[2010-12-03 12:53:57] pajoye@php.net

Are you sure you mean $glob = glob('/phpMyAdmin/*'); and not $glob =
glob('phpMyAdmin/*');? The sooner is an absolute path '/phpMyAdmin/',
where the 2nd path is relative (to CWD).

------------------------------------------------------------------------
[2010-12-03 05:56:59] cameel2+php at gmail dot com

Description:
------------
On my system the glob() returns false if there are no files matching the
pattern even though the documentation
(http://php.net/manual/en/function.glob.php) states that it should
return an empty array. 

PHP version: 5.3.3

The only things I have changed in php.ini are open_basedir
(/srv/http/:/home/:/usr/share/webapps:/etc/webapps:/tmp/:/usr/share/pear/:/usr/share/symfony)
and enabling of several extensions (mcrypt, mysql, pdo, pdo_sqlite). 

I've seen similar bugs reported and closed a few years ago: #29928

Test script:
---------------
<?php 
    // phpMyAdmin is an empty, existing directory located in Apache
root
    $glob = glob('/phpMyAdmin/*');
    echo $glob == false  ? "false\n" : ""; 
    echo is_array($glob) ? "array\n" : ""; 
?>                           

Expected result:
----------------
glob() should return an empty array if no files match the pattern.

Actual result:
--------------
The script prints 'false' when run on my box (both under Apache 2.2.17
and with php from command line).


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=53460&edit=1


Thread (9 messages)

« previous php.bugs (#156732) next »