代码如下:
<?php
//将所有的文件和文件夹都遍历出来
function showFile($path){
if($path==""){
$path==".";
}
//设置当前的路径
$objDir=dir($path);
//设置文件和文件夹总数的初始值为0
$fileNum=0;
while(false!==($fileName=$objDir->read())){
if(($fileName==".") || ($fileName=="..")){
continue;
}
$fileNum++;
//遍厉所有的文件夹
if(is_dir($fileName)){
$dir["fileName"]=$fileName;
$dir["icon"]="diricon.jpg";
$arrDir[]=$dir;
continue;
}
//遍厉所有的文件
if(is_file($filename)){
$file["fileName"]=$fileName;
$file["icon"]=icon($fileName);
$arrFile[]=$file;
continue;
}
}
sort($arrDir);
sort($arrFile);
$result=array_merge($arrDir,$arrFile);
$result["num"]=$fileNum;
return $result;
}
?>
它老说我:Warning: sort() expects parameter 1 to be array, null given in F:\AppServ\www\file\func\file.func.php on line 32Warning: array_merge() [function.array-merge]: Argument #2 is not an array in F:\AppServ\www\file\func\file.func.php on line 33

解决方案 »

  1.   

    if(is_file($filename)){
    $file["fileName"]=$fileName;
    $file["icon"]=icon($fileName);
    $arrFile[]=$file;
    continue;
    }
    $arrFile不是数组?我明明这个是定义的数组啊!那应该怎么定义啊?
      

  2.   

    $arrDir = array();
    $arrFile = array();用之前定义一下就OK了 调试通过
      

  3.   

    if(is_file($filename)){
    $file["fileName"]=$fileName;另外$filename 应该是$fileName
      

  4.   

    其实LZ的问题是出在$fileName写成了$filename PHP中变量是区分大小写的所以if判断后一直没进到$file["fileName"]=$fileName;
    $file["icon"]=icon($fileName);
    $arrFile[]=$file;这里导致sort前 根本没有$arrFile这个数组存在过到sort时才创建了 $arrFile这个变量 而这个变量不是数组
      

  5.   

    恩!wowh(NETwalker) 说的对啊!我是新手啊!才学的啊!写这个东西!抱了一个下午的错哦! 非常感谢wowh(NETwalker) 哦!wowh(NETwalker) 可以把QQ发给我吗?
      

  6.   

    哎!·又碰见问题了哦!我再得到文件名的时候怎么得不到啊?但是文件总数可以得到啊!
    代码如下:
     <?php
    include_once ("func/file.func.php");
    $result=showFile(".");for($i=0;$i<=$result["num"];$i++)
    {
    $arr[] = $i;
    }
    $sum=count($arr);
    $row = ceil($sum/4);
    $k=0;
    echo "<table width='100%'  border='0' cellspacing='0' cellpadding='0'>";
    //外层循环 循环行
    for ($i=1;$i<=$row;$i++)
    {
    echo "<tr>";

    //内层循环 循环列
    while($k<count($arr))
    {
    $k++;
    echo "<td>".$result[fileName]."</td>";
    if($k%4==0)
    {break;}
    }
    echo "</tr>";
    }
    echo '</table>';
    ?>
      

  7.   

    while($k<count($arr))
    {
    $k++;
    echo "<td>".$result[$k]['fileName']."</td>";
    if($k%4==0)
    {break;}
    }result是2维数组 PS:我不用QQ
      

  8.   

    恩!我做出来了啊!呵呵!还是谢谢你啊!但是图片怎么显示啊?
    代码:echo "<td><img src='images/icon/'".$result[$k]['icon']. "width='55' height='58'></td>";
    图片不显示哦!
      

  9.   

    echo "<td><img src='images/icon/'".$result[$k]['icon']. "width='55' height='58'></td>";=>echo "<td><img src='images/icon/".$result[$k]['icon']. "' width='55' height='58'></td>";
      

  10.   

    是修改,不是增加!!!
    echo "<td>..." => echo "<td>...."