【发布时间】:2017-12-30 19:54:10
【问题描述】:
我想读取一个文件直到 X 字节。但是最后一行不应该像我当前的代码一样被切断:
$file = fopen("test.txt", "r");
while(! feof($file)) {
$contents = fread($file,10000);
现在,fread 一直读取到 10000 字节。然后切断线路并创建一个新文件。该行基本上是完全存储但分为两个文件。我不想只停止和一行的结束。
有什么解决办法吗?谢谢!
【问题讨论】:
-
你想达到什么目的?而不是 fread 使用 fgets 或 stream_get_line,并使用 strlen 计算行长度。您甚至可以使用file,然后在循环计数字符等上使用。
-
我想将一个大文件拆分成较小的文件。如果我逐行进行,则需要数天(~50 kb/sec)。这就是为什么我需要像 fread 这样的东西,所以我不需要单独读取和保存每一行。
-
这不是它的工作原理,它不会像 1 秒那样花费几天的时间,你不会将每一行存储在一个新文件中,你连接这些行并计数然后在 char 10k 处创建新文件,基本上我上面说的。你所做的事情是 fread 做不到的。
-
你有示例代码吗?或者你能给我一些表达式来搜索吗?我不知道它是怎么调用的以及使用哪些函数。
-
您仍然可以使用
fread(),并使用fgets()获取当前行的剩余部分。