php ファイルの指定された行を変更します

WBOY
リリース: 2023-05-07 10:45:07
オリジナル
641 人が閲覧しました

PHP 開発では、読み取り、書き込み、変更などのファイル操作が必要になることがよくあります。ファイル内の指定された行を変更するには、いくつかの一般的な方法を使用できます。

1. file 関数を使用する
file 関数は、ファイルを読み取るために PHP で一般的に使用される関数です。ファイルの内容を読み取り、配列に格納できます。各配列要素は、ファイルの 1 行。この機能を使用して、ファイル内の特定の行を変更できます。

具体的な実装アイデアは次のとおりです。

  1. ファイルの内容を配列に読み込みます。
  2. 配列内の指定された行を変更します。
  3. Change配列 内容を文字列に再結合します
  4. 変更した文字列をファイルに書き戻します

以下は実装コードです:

function modify_file_line($file_path, $line_number, $new_contents) {
    // 读取文件内容到数组中
    $file_array = file($file_path);

    // 修改数组中的指定行
    $file_array[$line_number - 1] = $new_contents;

    // 将数组中的内容重新合并成一个字符串
    $new_file_content = implode("", $file_array);

    // 将修改后的字符串写回到文件中
    $file_handle = fopen($file_path, "w");
    fwrite($file_handle, $new_file_content);
    fclose($file_handle);

    return true;
}
ログイン後にコピー

次のように使用されます:

modify_file_line('test.txt', 5, 'new contents');
ログイン後にコピー
ログイン後にコピー

注: この方法でファイルを変更すると、ファイル全体がメモリにロードされます。ファイルが大きい場合、より多くのメモリを占有し、メモリ不足エラーが発生する可能性があります。

2. fopen 関数と fgets 関数を使用する
ファイルの指定された行を変更するもう 1 つの方法は、fopen 関数と fgets 関数を使用することです。この方法では、ファイル全体ではなく、指定された行の内容をメモリに保存するだけでよいため、大きなファイルを処理する場合により効率的です。

具体的な実装アイデアは次のとおりです。

  1. fopen 関数を使用してファイルを開きます
  2. fgets 関数を使用して、指定された行の内容を読み取ります
  3. ファイル ハンドルを閉じます。
  4. fwrite 関数を使用して、新しいコンテンツをファイルに書き込みます。
  5. ##fopen 関数と fgets 関数を再度使用して、ファイル内の残りのコンテンツを読み取ります。
  6. fwrite 関数を使用して残りのコンテンツをファイルに書き戻します
以下は実装コードです:

function modify_file_line($file_path, $line_number, $new_contents) {
    // 打开文件并读取指定行的内容
    $file_handle = fopen($file_path, "r");
    $line_count = 0;
    $new_file_content = "";
    while (!feof($file_handle)) {
        $line_count++;
        $line_content = fgets($file_handle);
        if($line_count == $line_number) {
            $new_file_content .= $new_contents."\n";
        } else {
            $new_file_content .= $line_content;
        }
    }

    // 关闭文件句柄
    fclose($file_handle);

    // 将新内容写回文件中
    $file_handle = fopen($file_path, "w");
    fwrite($file_handle, $new_file_content);
    fclose($file_handle);

    return true;
}
ログイン後にコピー
使用方法は上記と同じです:

modify_file_line('test.txt', 5, 'new contents');
ログイン後にコピー
ログイン後にコピー
概要:

上記 2 つの方法はどちらもファイルを変更できます。行を指定します。最初の方法はより簡単ですが、大きなファイルの場合はより多くのメモリを使用する可能性があります。 2 番目の方法は、ファイルの内容を 1 行ずつ読み取る方法です。これはより効率的で、大きなファイルの処理に適しています。

以上がphp ファイルの指定された行を変更しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!