why would a directory fail the is_dir() test?

This is a discussion on why would a directory fail the is_dir() test? within the PHP Language forums, part of the PHP Programming Forums category; In the function below, before I open the directory I first test to make sure the address I have is, ...


Go Back   Usenet Forums > PHP Programming Forums > PHP Language

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 05-01-2004
lawrence
 
Posts: n/a
Default why would a directory fail the is_dir() test?

In the function below, before I open the directory I first test to
make sure the address I have is, in fact, a directory. This function
was working fine on one web server running FreeBSD and PHP 4.06.
However, today I'm trying to run this software on a new server (RH
Linux 9, PHP 4.2.3) and the directory is failing the is_dir() test.
The error message that I have in my code is printing out this error:

In getListOfAnyDirectory(), we expected the function to be handed an
address to a directory, but instead we were given this:
ppArrangementsPublic/.


Now, ppArrangementsPublic/ looks like a directory to me. So why is it
failing the test?








function getListOfAnyDirectory($address=false) {
// 03-17-04 - this function should be given an address to a folder.

$controllerForAll = & getController();
$resultsObject = & $controllerForAll->getObject("McResults", " in
getListOfAnyDirectory().");
$theDirFilesArray = array() ;

$address2 = str_replace("/", "", $address);

if (is_dir($address) || is_dir($address2)) {
// open the directory and load all the files into an array
$theDir = @ opendir($address);

if ($theDir) {
// We go through the array one element at a time, putting it into a
new array, minus invisible files
//marked by "." and ".."

while ($theDirFiles = readdir ($theDir)) {
if ($theDirFiles != "." && $theDirFiles != "..") {
$theDirFilesArray[] = $theDirFiles ;
}
}

closedir ($theDir) ;
return $theDirFilesArray;
} else {
$resultsObject->error("In getListOfAnyDirectory(), we tried to open
the directory at the address $address, but for some reason it didn't
open.", "getListOfAnyDirectory");
}
} else {
$resultsObject->error("In getListOfAnyDirectory(), we expected the
function to be handed an address to a directory, but instead we were
given this: $address.", "getListOfAnyDirectory");
}
}
Reply With Quote
  #2 (permalink)  
Old 05-01-2004
Garp
 
Posts: n/a
Default Re: why would a directory fail the is_dir() test?


"lawrence" <lkrubner@geocities.com> wrote in message
news:da7e68e8.0404301520.1d60f4c@posting.google.co m...
> In the function below, before I open the directory I first test to
> make sure the address I have is, in fact, a directory. This function
> was working fine on one web server running FreeBSD and PHP 4.06.
> However, today I'm trying to run this software on a new server (RH
> Linux 9, PHP 4.2.3) and the directory is failing the is_dir() test.
> The error message that I have in my code is printing out this error:
>
> In getListOfAnyDirectory(), we expected the function to be handed an
> address to a directory, but instead we were given this:
> ppArrangementsPublic/.
>
>
> Now, ppArrangementsPublic/ looks like a directory to me. So why is it
> failing the test?


<snip>

I can only speculate that your "directory" is not only not a directory, but
doesn't actually exist at all. Does file_exists() return 1? Can you find it
using the shell?

Garp


Reply With Quote
  #3 (permalink)  
Old 05-03-2004
FLEB
 
Posts: n/a
Default Re: why would a directory fail the is_dir() test?

Regarding this well-known quote, often attributed to lawrence's famous "30
Apr 2004 16:20:44 -0700" speech:

> In the function below, before I open the directory I first test to
> make sure the address I have is, in fact, a directory. This function
> was working fine on one web server running FreeBSD and PHP 4.06.
> However, today I'm trying to run this software on a new server (RH
> Linux 9, PHP 4.2.3) and the directory is failing the is_dir() test.
> The error message that I have in my code is printing out this error:
>
> In getListOfAnyDirectory(), we expected the function to be handed an
> address to a directory, but instead we were given this:
> ppArrangementsPublic/.
>
>
> Now, ppArrangementsPublic/ looks like a directory to me. So why is it
> failing the test?


> (snip code)



Just some shots in the dark here... try sending it
"./ppArrangementsPublic/", "./ppArrangementsPublic", or just
"ppArrangementsPublic" (no trailing slash). That might be confusing it.
Also, make sure your script is running in the current directory you think
it is.

--
-- Rudy Fleminger
-- sp@mmers.and.evil.ones.will.bow-down-to.us
(put "Hey!" in the Subject line for priority processing!)
-- http://www.pixelsaredead.com
Reply With Quote
  #4 (permalink)  
Old 05-04-2004
lawrence
 
Posts: n/a
Default Re: why would a directory fail the is_dir() test?

FLEB <soon.the.sp@mmers.and.evil.ones.will.bow-down-to.us> wrote in message news:<1fxhwrw9ndoqd.4rnznd6llyhl.dlg@40tude.net>.. .
> Regarding this well-known quote, often attributed to lawrence's famous "30
> Apr 2004 16:20:44 -0700" speech:
>
> > In the function below, before I open the directory I first test to
> > make sure the address I have is, in fact, a directory. This function
> > was working fine on one web server running FreeBSD and PHP 4.06.
> > However, today I'm trying to run this software on a new server (RH
> > Linux 9, PHP 4.2.3) and the directory is failing the is_dir() test.
> > The error message that I have in my code is printing out this error:
> >
> > In getListOfAnyDirectory(), we expected the function to be handed an
> > address to a directory, but instead we were given this:
> > ppArrangementsPublic/.
> >
> >
> > Now, ppArrangementsPublic/ looks like a directory to me. So why is it
> > failing the test?

>
> > (snip code)

>
>
> Just some shots in the dark here... try sending it
> "./ppArrangementsPublic/", "./ppArrangementsPublic", or just
> "ppArrangementsPublic" (no trailing slash). That might be confusing it.
> Also, make sure your script is running in the current directory you think
> it is.



I think the problem was the capitalization, which worked on a Windows
server but not on a Linux server. Is there a way to get PHP to look
for directories in a case insensitive manner when it is on Linux?
Reply With Quote
  #5 (permalink)  
Old 05-04-2004
FLEB
 
Posts: n/a
Default Re: why would a directory fail the is_dir() test?

Regarding this well-known quote, often attributed to lawrence's famous "3
May 2004 18:58:21 -0700" speech:

> FLEB <soon.the.sp@mmers.and.evil.ones.will.bow-down-to.us> wrote in message news:<1fxhwrw9ndoqd.4rnznd6llyhl.dlg@40tude.net>.. .
>> Regarding this well-known quote, often attributed to lawrence's famous "30
>> Apr 2004 16:20:44 -0700" speech:
>>
>>> In the function below, before I open the directory I first test to
>>> make sure the address I have is, in fact, a directory. This function
>>> was working fine on one web server running FreeBSD and PHP 4.06.
>>> However, today I'm trying to run this software on a new server (RH
>>> Linux 9, PHP 4.2.3) and the directory is failing the is_dir() test.
>>> The error message that I have in my code is printing out this error:
>>>
>>> In getListOfAnyDirectory(), we expected the function to be handed an
>>> address to a directory, but instead we were given this:
>>> ppArrangementsPublic/.
>>>
>>>
>>> Now, ppArrangementsPublic/ looks like a directory to me. So why is it
>>> failing the test?

>>
>>> (snip code)

>>
>>
>> Just some shots in the dark here... try sending it
>> "./ppArrangementsPublic/", "./ppArrangementsPublic", or just
>> "ppArrangementsPublic" (no trailing slash). That might be confusing it.
>> Also, make sure your script is running in the current directory you think
>> it is.

>
>
> I think the problem was the capitalization, which worked on a Windows
> server but not on a Linux server. Is there a way to get PHP to look
> for directories in a case insensitive manner when it is on Linux?


Hmm... if there isn't a function for that in PHP already, I imagine you
could iterate through a directory reading and use a case-insensitive string
match.

--
-- Rudy Fleminger
-- sp@mmers.and.evil.ones.will.bow-down-to.us
(put "Hey!" in the Subject line for priority processing!)
-- http://www.pixelsaredead.com
Reply With Quote
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT +1. The time now is 08:51 AM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.0.0