テキストファイルからphpを使用して最初の20行を除くすべての行を削除するにはどうすればよいですか?削除最初の20行以外のすべての行をPHPを使用して
答えて
ます。これは、巨大なメモリ使用量なしで同様に動作するはずです
$file = new SplFileObject('/path/to/file.txt', 'a+');
$file->seek(19); // zero-based, hence 19 is line 20
$file->ftruncate($file->ftell());
+1、最初は非常にエレガントです。 – codaddict
謝罪、質問を誤って読んで...
$filename = "blah.txt";
$lines = file($filename);
$data = "";
for ($i = 0; $i < 20; $i++) {
$data .= $lines[$i] . PHP_EOL;
}
file_put_contents($filename, $data);
これはあなたにすべてのファイルを与えると思うが、*最初の20行。私が正しく理解すれば、@Ahsanは最初の20個のみを望んでいます。 –
私の悪い、コードが修正されました! – fire
これは良く見えますが、$ i <20にするか、21行読むのが良いでしょう:)あなたは正しい考えを持っています。 –
メモリ内のファイル全体を読み込むことはあなたが行うことができます実現可能である場合:
// read the file in an array.
$file = file($filename);
// slice first 20 elements.
$file = array_slice($file,0,20);
// write back to file after joining.
file_put_contents($filename,implode("",$file));
よりよい解決策は、関数を使用することですftruncateこれは、ファイルハンドルと、ファイルの新しいサイズをバイト単位で取ります。
// open the file in read-write mode.
$handle = fopen($filename, 'r+');
if(!$handle) {
// die here.
}
// new length of the file.
$length = 0;
// line count.
$count = 0;
// read line by line.
while (($buffer = fgets($handle)) !== false) {
// increment line count.
++$count;
// if count exceeds limit..break.
if($count > 20) {
break;
}
// add the current line length to final length.
$length += strlen($buffer);
}
// truncate the file to new file length.
ftruncate($handle, $length);
// close the file.
fclose($handle);
何かのように:メモリ効率的なソリューションについては
$lines_array = file("yourFile.txt");
$new_output = "";
for ($i=0; $i<20; $i++){
$new_output .= $lines_array[$i];
}
file_put_contents("yourFile.txt", $new_output);
file()を使って内容を配列に読み込むので、手動でデータを分解()する必要はありません。 –
ありがとう、私は私の答えを更新します。 –
を使用することができます
$result = '';
$file = fopen('/path/to/file.txt', 'r');
for ($i = 0; $i < 20; $i++)
{
$result .= fgets($file);
}
fclose($file);
file_put_contents('/path/to/file.txt', $result);
- 1. 文の最初の単語以外のすべてを削除します
- 2. 最初の行を除いて表の行を削除する
- 3. 上位10行以外のすべてを削除する
- 4. 最初のオカレンス以外のすべての行エントリがゼロである列を削除する
- 5. 最大値を持つ行以外のすべての行を削除します
- 6. 4つの最新ディレクトリ以外のすべてを削除
- 7. 数値以外のすべてを削除するPHPコード
- 8. 正規表現:各行の最初の単語以外のすべてを削除するために使用され、正規どう表現次の行に
- 9. Powershellを使用してExcelで最初の4行を削除する
- 10. 最近のもの以外のフォルダ内のすべてを削除するperl
- 11. HTML定義リストの最初の行以外のすべての行にスタイルを付ける
- 12. JQueryとPHPを使用してテーブル行を削除する
- 13. JPAを使用して表からすべての行を削除する
- 14. sedを使用して区切り文字の前の最初の3文字以外のすべてを削除しますか?
- 15. フォームコントロール以外のすべての図形を削除する
- 16. webdriverを使用して最初のタブ/メインタブ以外のすべての開いているタブを閉じる
- 17. VIMの最初の列を除くすべてを削除します
- 18. Nokogiriを使用しているもの以外のすべてのタグを削除する方法
- 19. データベースの最初のX行を削除します
- 20. powershellは行の最初の文字を削除します
- 21. jqueryテーブルの最初の行を削除します
- 22. sedを使用してWindowsのテキストファイルから最初の行を削除します
- 23. PANDASの最初のNaN以外の行を保持する
- 24. 空白以外のすべての数字以外の文字を削除してください
- 25. テーブル内の最新の20行を除くすべての行を削除するにはどうすればよいですか?
- 26. PHPの最初の要素を除くすべてのリスト要素を削除しますか?
- 27. C#でXMLDocumentを使用してXMLファイルの最初の行を削除するには?
- 28. HiveContextを使用してSparkの最小値を含む行以外の行を選択します。
- 29. sedコマンドを使用して開始文字列以外の行を削除する
- 30. numpy.ndarrayの数値以外の値を含むすべての行を削除する方法
あなたは自分でいくつかの研究を行うべきです同じように。このウェブサイトは他のリソースを補完し、インターネットの他の部分に代わるものではありません。人々は助けが好きですが、あなたも自分自身を助けるためにいくつかの措置を取る必要があります。 – DMin