php是一种奇怪的行为

php是一种奇怪的行为,php,python,linux,Php,Python,Linux,我在linux服务器上运行php代码。我注意到我的php代码在使用is\u dir()函数时失败了。is_dir()函数返回false,即使该目录存在于服务器中。许可,所有权看起来不错。我对此没有什么怀疑,并尝试使用python使用python语言中的等效函数来使用相同的方法(php和python代码如下所示)。python代码运行良好,并给出了预期的结果 在进一步调试时,我注意到在其父目录中创建的子目录有一些奇怪的行为。这些目录的inode值被弄乱了 386999 drwxrwsr-x

我在linux服务器上运行php代码。我注意到我的php代码在使用
is\u dir()
函数时失败了。
is_dir()
函数返回
false
,即使该目录存在于服务器中。许可,所有权看起来不错。我对此没有什么怀疑,并尝试使用python使用python语言中的等效函数来使用相同的方法(php和python代码如下所示)。python代码运行良好,并给出了预期的结果

在进一步调试时,我注意到在其父目录中创建的子目录有一些奇怪的行为。这些目录的inode值被弄乱了

386999     drwxrwsr-x 2 guiuser guiuser    6 Oct 24 03:04 temp

4451771015 drwxrwsr-x 2 guiuser guiuser    6 Oct 24 03:08 temp_1
当我运行php代码时,
is_dir()
函数为
temp
返回
true
,为
temp\u 1
返回
false
。但是python代码对这两种情况都返回
true
。奇怪吧

由于某种原因,
is_dir()
函数在inode值为大数值时失败

注意:我使用的是php5。不依赖于apache或其他Web服务器。我将它作为可执行文件运行。而且
temp
temp_1
都是在装载点上的目录中创建的,装载点类型为
xfs

PHP代码:


请帮助我理解这个问题。

试试
!is_dir($DirM)
没有与CIFS文件系统相关的空间,可能类似于在32位系统上安装XFS文件系统。@Nigel Ren,我的系统是64位的,我还想确认,is_dir函数是否存在此问题以及inode值过大,或者我在分析中遗漏了什么?我以前看过这篇文章,可能是这篇文章使我对这个结论产生了偏见。
#!/usr/bin/php
<?php
  class test
  {
   public function __construct()
   {
   }
   public function check()
   {    
      $DirM = "/path/to/folder";    
      if (!is_dir ($DirM))
      {
    print $DirM . " Not a directory\n";
        return;
      }
      print $DirM . " is a directory\n";
   }
  }    
  $test1 = new test();
  $test1->check(); 
?>
import os
print(os.path.isdir("/path/to/folder"))