Best way to determine if a file is empty (php)?

前端 未结 5 1401
迷失自我
迷失自我 2020-12-01 15:40

I\'m including a custom.css file in my template to allow site owners to add their own css rules. However, when I ship the file, its empty and there\'s no sense loading it if

相关标签:
5条回答
  • 2020-12-01 16:04

    file_get_contents() will read the whole file while filesize() uses stat() to determine the file size. Use filesize(), it should consume less disk I/O and much less memory.

    0 讨论(0)
  • 2020-12-01 16:07

    Using filesize() is clearly better. It uses stat() which doesn't have to open the file at all.

    file_get_contents() reads the whole file.. imagine what happens if you have a 10GB file.

    0 讨论(0)
  • 2020-12-01 16:07

    filesize() would be more efficient, however, it could be misleading. If someone were to just have comments in there or even just whitespace...it would make the filesize larger. IMO you should instead look for something specific in the file, like /* enabled=true */ on the first line and then use fopen/fread to just read the first line. If it's not there, don't load it.

    0 讨论(0)
  • 2020-12-01 16:18

    As mentioned in other answers, filesize is the way to go for local files. Many stream wrappers on the other hand, including HTTP, do not have stat() support, thus filesize will fail, whereas file_get_contents will work.

    0 讨论(0)
  • 2020-12-01 16:21

    Everybody be carefull when using filesize, cause it's results are cached for better performance. So if you need better precision, it is recommended to use something like:

    <?
    clearstatcache();
    if(filesize($path_to_your_file)) {
        // your file is not empty
    }
    

    More info here

    0 讨论(0)
提交回复
热议问题