在PHP中拆分文本文件
作者:互联网
如何使用PHP通过字符计数将大文本文件拆分为单独的文件?因此,每1000个字符拆分10,000个字符的文件将被拆分为10个文件.此外,我是否可以在找到完整停止后拆分?
谢谢.
更新1:我喜欢zombats代码,我删除了一些错误,并提出了以下内容,但有没有人知道如何只在完全停止后拆分?
$i = 1;
$fp = fopen("test.txt", "r");
while(! feof($fp)) {
$contents = fread($fp,1000);
file_put_contents('new_file_'.$i.'.txt', $contents);
$i++;
}
更新2:
我拿了zombats建议并修改了下面的代码,它似乎工作 –
$i = 1;
$fp = fopen("test.txt", "r");
while(! feof($fp)) {
$contents = fread($fp,20000);
$contents .= stream_get_line($fp,1000,".");
$contents .=".";
file_put_contents("Split/".$tname."/"."new_file_".$i.".txt", $contents);
$i++;
}
解决方法:
您应该能够使用基本的fread()轻松完成此操作.您可以指定要读取的字节数,因此以精确的数量读取并将其输出到新文件是微不足道的.
尝试这样的事情:
$i = 1;
$fp = fopen("test.txt",'r');
while(! feof($fp)) {
$contents = fread($fp,1000);
file_put_contents('new_file_'.$i.'.txt',$contents);
$i++;
}
编辑
如果你希望在一定长度后停止OR或某个角色,那么你可以使用stream_get_line()而不是fread().它几乎完全相同,只是它允许您指定任何结束分隔符.请注意,它不会将分隔符作为读取的一部分返回.
$contents = stream_get_line($fp,1000,".");
标签:php,string,text-processing 来源: https://codeday.me/bug/20191008/1874455.html