4

こんにちは、php を使用してファイルの先頭に行を追加したいと思います。

たとえば、ファイルに次の内容が含まれているとします。

    Hello Stack Overflow, you are really helping me a lot.

そして今、私は次のように前のものの上に行を追加したい:

    www.stackoverflow.com
    Hello Stack Overflow, you are really helping me a lot.

これは、現在スクリプトで使用しているコードです。

    $fp = fopen($file, 'a+') or die("can't open file");
    $theOldData = fread($fp, filesize($file));
    fclose($fp);

    $fp = fopen($file, 'w+') or die("can't open file");
    $toBeWriteToFile = $insertNewRow.$theOldData;
    fwrite($fp, $toBeWriteToFile);
    fclose($fp);

PHPスクリプトで使用しているため、最適なソリューションが必要です。ここで見つけたいくつかの解決策を次に示します: PHP でファイルの先頭に書き込む必要がある

これは、最初に追加するように次のように言います:

    <?php
    $file_data = "Stuff you want to add\n";
    $file_data .= file_get_contents('database.txt');
    file_put_contents('database.txt', $file_data);
    ?>

ここにもう1つ: phpを使用して、テキストファイルの先頭に上書きせずにテキストを挿入する方法

次のように述べています。

    $old_content = file_get_contents($file);
    fwrite($file, $new_content."\n".$old_content);

したがって、私の最後の質問は、上記のすべての方法の中で使用するのに最適な方法 (つまり、最適な方法) です。上記よりも良いものはありますか?

これについてのあなたの考えを探しています!!!.

4

4 に答える 4

7
function file_prepend ($string, $filename) {

  $fileContent = file_get_contents ($filename);

  file_put_contents ($filename, $string . "\n" . $fileContent);
}

利用方法 :

file_prepend("couldn't connect to the database", 'database.logs');
于 2013-06-07T07:24:57.460 に答える
1

つまり、先頭に追加します。行を読んで、データを失うことなく次の行に置き換えることをお勧めします。

<?php

$dataToBeAdded = "www.stackoverflow.com";
$file = "database.txt"; 

$handle = fopen($file, "r+");

$final_length = filesize($file) + strlen($dataToBeAdded );

$existingData = fread($handle, strlen($dataToBeAdded ));

rewind($handle);

$i = 1;

while (ftell($handle) < $final_length) 
{

  fwrite($handle, $dataToBeAdded );

  $dataToBeAdded  = $existingData ;

  $existingData  = fread($handle, strlen($dataToBeAdded ));

  fseek($handle, $i * strlen($dataToBeAdded ));

  $i++;
}
?>
于 2013-06-07T07:51:57.563 に答える