2016-07-21 29 views
2

我使用引导表和行来计算文件夹中有多少文件,但目标指向不同的服务器,下面的代码不起作用。 因为我使用localhost(xampp)试图做到这一点,不知道它是否可能。PHP文件夹内的文件数

<?php 
// integer starts at 0 before counting 
$i = 0; 
$dir = 'uploads/'; <!--\\189.207.00.122\folder1\folder2\folder3\test--> 
if ($handle = opendir($dir)) { 
while (($file = readdir($handle)) !== false){ 
if (!in_array($file, array('.', '..')) && !is_dir($dir.$file)) 
$i++; 
} 
} 
// prints out how many were in the directory 
echo "There were $i files"; 
?> 
+0

那么,服务器可能会拒绝你的要求,大多数服务器应该是。 (除非“目标服务器”是你自己的)。 – Epodax

+0

服务器是我自己的不知道我是否必须在我的httpd文件中添加服务器地址以允许访问或$ username $ password。 –

回答

0

这是您可能想要尝试的一个方便的小功能。只要通过path to the Directory作为第一个参数,你就会得到你的结果。

注:这个功能是递归的,这意味着:它会遍历所有子目录...禁用此行为,只需注释掉或删除以下线向功能可按结束:

<?php 
      }else if(is_dir($temp_file_or_dir) && !preg_match('/^\..*/', $val)){ 
       getFilesInFolder($temp_file_or_dir); 
      } 

的代码:

<?php 
    $folder = dirname(__FILE__).'/uploads';  // ASSUMES YOUR uploads DIRECTORY 
               // IS IN THE SAME DIRECTORY AS index.php 
               // (/htdocs/php/pages) 

    // OR 
    $folder = dirname(__FILE__).'/../uploads'; // ASSUMES YOUR uploads DIRECTORY 
               // IS ONE DIRECTORY ABOVE 
               // THE CURRENT DIRECTORY (/htdocs/php) 
               // THIS IS MOST LIKELY RIGHT 
    // OR 
    $folder = dirname(__FILE__).'/../../uploads';// ASSUMES YOUR uploads DIRECTORY 
               // IS TWO DIRECTORIES ABOVE 
               // THE CURRENT DIRECTORY (/htdocs) 

    // MAKE SURE THE FOLDER IN QUESTION HAS THE RIGHT PERMISSIONS 
    // OR RATHER CHANGE PERMISSIONS ON THE FOLDER TO BE ABLE TO WORK WITH IT 
    chmod($folder, 0777); 

    var_dump(getFilesInFolder($folder)); 


    // IF YOU PASS false AS THE THE 2ND ARGUMENT TO THIS FUNCTION 
    // YOU'D GET AN ARRAY OF ALL FILES IN THE $path2Folder DIRECTORY 
    // AS WELL AS IN SUB-DIRECTORIES WITHIN IT... 
    function getFilesInFolder($path2Folder, $countOnly=true){ 
     $files_in_dir = scandir($path2Folder); 
     $returnable  = array(); 

     foreach($files_in_dir as $key=>$val){ 
      $temp_file_or_dir = $path2Folder . DIRECTORY_SEPARATOR . $val; 
      if(is_file($temp_file_or_dir) && !preg_match("#^\..*#", $temp_file_or_dir)){ 
       $arrRX     = array('#\.{2,4}$#', '#\.#'); 
       $arrReplace    = array("", "_"); 
       $returnVal    = preg_replace($arrRX, $arrReplace, $val); 
       $returnable[$returnVal] = $temp_file_or_dir; 
      }else if(is_dir($temp_file_or_dir) && !preg_match('/^\..*/', $val)){ 
       getFilesInFolder($temp_file_or_dir); 
      } 
     } 
     return ($countOnly) ? count($returnable) : $returnable; 
    } 
0

使用$_SERVER['DOCUMENT_ROOT']来获取您的根目录。

$dir = $_SERVER['DOCUMENT_ROOT'].'/uploads/'; 
+0

这是错误im getting.Warning:opendir(C:/ xampp/htdocs/uploads /,C:/ xampp/htdocs/uploads /):系统找不到指定的文件。 (代码:2)在410行C:\ xampp \ htdocs \ php \ pages \ index.php 警告:opendir(C:/ xampp/htdocs/uploads /):无法打开dir:没有这样的文件或目录在410行上的C:\ xampp \ htdocs \ php \ pages \ index.php中有0个文件 –

+0

htdocs文件夹的目录是什么? – rmondesilva

+0

这是我输入代码来检查以下目录$ dir = $ _SERVER ['http://204.123.70.4']''\\ test \ test1 \ test2';然后检查文件夹里面的内容。 –

相关问题