1

昨夜から例を読んだりテストしたりしてきましたが、牛が帰ってきませんでした。

(たとえば)約のファイルがあります。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

ここで待ってください。にファイル名/パスを指定するのではなくfile_put_contents();、ファイルハンドルを指定します。

これを試して:

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

を実行すると、ハンドルの値を指定していることがわかり$var=fopen();ます。これは、ハンドルを要求しないため、一緒に使用することを意図したものではなく、代わりにファイル名を指定します。したがって、次のようになります。$varfile_put_contents();file_put_contents("myfilenamehere.txt", "the data i want in my file here...");

単純。

于 2012-06-06T17:09:12.500 に答える