如何检查远程服务器上是否存在没有头的非常大的文件


How to check existing of very big file without headers on remote server

我想检查远程服务器上是否存在文件。问题是2:文件很大,而且没有头。

要检查服务器上是否存在文件,应使用php内置函数file_exists()

但是,如果文件大于2 gB,则可能会出现问题。来自php.net

由于PHP的整数类型是有符号的,并且许多平台使用32位整数,因此对于大于2GB的文件,一些文件系统函数可能会返回意外结果。

您可以尝试使用大文件支持编译php,然后使用fgets()只获取几个字节来检查文件是否存在。如果它不起作用,你可以使用外部应用程序和shell_exec(),这个应用程序将获得2个参数,一个是文件的路径,如果文件不存在,它将返回0,如果它存在,则返回1。

指向c++中检查文件是否存在的程序的链接,您可以简单地将其修改为打印1或0

希望它能帮助你。

没有代码我们只能猜测,无论如何,下面的代码可能会帮助你,

<?php
    $filename='yourfilename';
    $exists = file_exists($filename);
    if($exists) {//checking the existance of file
        $filesize= filesize ( $filename );// file size
        if($filesize<$reqSize)//let $reqSize is your conditional size
        {
             $headers=get_headers($filename);
             print_r($headers);// file headers array
        }
    }
?>

参考

  • http://php.net/manual/en/function.filesize.php
  • http://php.net/manual/en/function.file-exists.php
  • http://php.net/manual/en/function.get-headers.php

你可以制作一个标准的ftp列表目录,这应该会给你一个服务器上的文件列表,然后你可以使用一些标准函数来"grep"你的文件名,如果它在那里,那么文件就在服务器上——希望是在一个文件不太多的文件夹中