dor65412 2013-12-04 16:56
浏览 36
已采纳

当使用readdir返回空字符串时

I am using readdir in the following code to get a list of all file names of images in a directory.

while (false !== ($entry = readdir($frameDir))){
    $shapeName = explode('.',$entry);
    if (!empty($shapeName[0]) && $shapeName[0] != '.' && $shapeName[0] != '..' &&     $shapeName[0] != '/'){
        $shapeName = $shapeName[0];
        $shapes['frames'][] = $shapeName;
    }

After this code the script appends the '.png' to make it a valid file name.

As you can see I've tried to eliminate any chances of a blank file name being passed. Though when I run the script I end up getting a blank directory "/shapes/frame/.png" . This only happens for this particular directory. When I use the code on another of the three directories I get results as expected, and the code is the same logic as what is used above.

while (false !== ($entry = readdir($frameDotDir))){
    $shapeName = explode('.',$entry);
    if (!empty($shapeName[0]) && $shapeName[0] != '.' && $shapeName[0] != '..' &&     $shapeName[0] != '/'){
        $shapeName = $shapeName[0];
        $shapes['frame_dots'][] = $entry;
    }
}

When checking the filesystem on the server, I can't find any files with blank names.

I am wondering what could be causing my script to be reading blank file names from the diretory.

  • 写回答

3条回答 默认 最新

  • dragon8002 2013-12-04 17:02
    关注

    File names cannot be empty (and will not). You did something wrong in your code. It should look like:

    while ($entry = readdir($frameDir)){
        // skip files which names starting with a dot
        // like '.', '..' or hidden files
        if (strpos($entry, '.') !== 0) {
            $shapes['frame_dots'][] = $entry;
        }
    }
    

    You see, less is more ;)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看