Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中获取二进制数据大小的正确方法是什么?_Php - Fatal编程技术网

在php中获取二进制数据大小的正确方法是什么?

在php中获取二进制数据大小的正确方法是什么?,php,Php,我已经阅读了文件的一部分,现在想确定该部分的大小是否正确。我如何用php实现它 $part = fread($file, 1024); return some_function($part) == 1024; 我已经阅读了这些示例,但我怀疑是否应该使用strlen来解释以Null结尾的字符串,它可能位于$part中的二进制数据中。通过这种方式,strlen返回从零件开始到数据中出现第一个空字节的大小。根据函数的PHP文档,您可以使用第一个示例中所示的构造: <?php // get co

我已经阅读了文件的一部分,现在想确定该部分的大小是否正确。我如何用php实现它

$part = fread($file, 1024);
return some_function($part) == 1024;

我已经阅读了这些示例,但我怀疑是否应该使用strlen来解释以Null结尾的字符串,它可能位于$part中的二进制数据中。通过这种方式,strlen返回从零件开始到数据中出现第一个空字节的大小。

根据函数的PHP文档,您可以使用第一个示例中所示的构造:

<?php
// get contents of a file into a string
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>


更新:查找不打开或打开文件时可以使用的文件大小函数。

如PHP手册所述,返回字符串中的字节数,而不是字符长度

在PHP中,字符串中的空字节不算作字符串的结尾,任何空字节都包含在字符串的长度中


因此,strlen可用于二进制数据,无论数据来自文件还是其他来源。

我需要知道文件当前部分的大小,但fstat/stat返回所有文件的大小。