自昨晚以来,我一直在阅读/测试示例但奶牛从未回家。
我有一个文件(例如)约。一行中有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);
?>
但这并不像我预期的那样有效。
我意识到还有其他类似的问题,比如我的,但他们没有展示如何阅读文件,然后回写它。
答案 0 :(得分:3)
<?php
$str = "aonoeincoieacaonoeincoieacaonoeincoieacaonoeincoieacaonoeincoieacaon";
$pieces = 10;
$ch = chunk_split($str, $pieces);
$piece = explode("\n", $ch);
foreach($piece as $line) {
// write to file
}
?>
答案 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...");
简单。