每次 byebye>发生拆分大文件。
下面的代码每10行分割一次我的文件,但是我希望它每次都分割
</byebye>
发生。这样,我将获得多个文件,每个文件包含;
<byebye>
*stuff here*
</byebye>
码:
<?php
/**
*
* Split large files into smaller ones
* @param string $source Source file
* @param string $targetpath Target directory for saving files
* @param int $lines Number of lines to split
* @return void
*/
function split_file($source, $targetpath=\'files/\', $lines=10){
$i=0;
$j=1;
$date = date(\"m-d-y\");
$buffer=\'\';
$handle = @fopen ($source, \"r\");
while (!feof ($handle)) {
$buffer .= @fgets($handle, 4096);
$i++;
if ($i >= $lines) {
$fname = $targetpath.\".part_\".$date.$j.\".xml\";
if (!$fhandle = @fopen($fname, \'w\')) {
echo \"Cannot open file ($fname)\";
exit;
}
if (!@fwrite($fhandle, $buffer)) {
echo \"Cannot write to file ($fname)\";
exit;
}
fclose($fhandle);
$j++;
$buffer=\'\';
$i=0;
$line+=10; // add 10 to $lines after each iteration. Modify this line as required
}
}
fclose ($handle);
}
split_file(\'testxml.xml\')
?>
有任何想法吗?
没有找到相关结果
已邀请:
2 个回复
到街客核
然后将零件写入不同的文件
但是我假设(不知道您的来源),这将导致无效的xml。您应该使用XML解析器之一(SimpleXML,DOM,..)来处理xml文件。 旁注:您过多地使用ѭ5。
冉案
您还可以通过打开文件进行输出来节省更多内存,并在解析时将内容通过管道传递给它。遇到条目时,您将关闭文件并打开下一个文件。