如何将内容分成相等的部分然后用PHP写入文件

时间:2012-06-06 16:05:53

标签: php file split

自昨晚以来,我一直在阅读/测试示例但奶牛从未回家。

我有一个文件(例如)约。一行中有1000个字符,并希望将其拆分为10个相等的部分,然后写回文件。

目标:

1. Open the file in question and read its content
2. Count up to 100 characters for example, then put a line break
3. Count 100 again and another line break, and so on till it's done.
4. Write/overwrite the file with the new split content

例如:

I want to turn this => KNMT2zSOMs4j4vXsBlb7uCjrGxgXpr

Into this:

KNMT2zSOMs
4j4vXsBlb7
uCjrGxgXpr

这是我到目前为止所拥有的:

<?php
$MyString = fopen('file.txt', "r");

$MyNewString;
$n = 100; // How many you want before seperation
$MyNewString = substr($MyString,0,$n); 
$i = $n;
while ($i < strlen($MyString)) {
$MyNewString .= "\n"; // Seperator Character
$MyNewString .= substr($MyString,$i,$n);
$i = $i + $n;
}
file_put_contents($MyString, $MyNewString);

fclose($MyString);
?>

但这并不像我预期的那样有效。

我意识到还有其他类似的问题,比如我的,但他们没有展示如何阅读文件,然后回写它。

3 个答案:

答案 0 :(得分:3)

<?php

$str = "aonoeincoieacaonoeincoieacaonoeincoieacaonoeincoieacaonoeincoieacaon";

$pieces = 10;

$ch = chunk_split($str, $pieces);
$piece = explode("\n", $ch);
foreach($piece as $line) {
// write to file
}

?>

http://php.net/manual/en/function.chunk-split.php

答案 1 :(得分:1)

查看str_split的文档。它将采用一个字符串并根据长度将其拆分为块,将每个块存储在它返回的数组中的单独索引处。然后,您可以遍历数组,在每个索引后添加换行符。

答案 2 :(得分:1)

坚持到这里。您没有给file_put_contents();提供文件名/路径,而是提供文件句柄。

试试这个:

file_put_contents("newFileWithText.txt", $MyNewString);

你知道,在执行$var=fopen();时,你给$var一个句柄的值,这并不意味着与file_put_contents();一起使用,因为它没有要求句柄,但是文件名代替。所以,它应该是:file_put_contents("myfilenamehere.txt", "the data i want in my file here...");

简单。