1

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

我有一个(例如)大约的文件。一行 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);
?>

但这并不像我预期的那样工作。

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

4

3 回答 3

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

于 2012-06-06T16:25:40.093 回答
1

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

于 2012-06-06T16:11:03.627 回答
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...");

简单的。

于 2012-06-06T17:09:12.500 回答