>  기사  >  백엔드 개발  >  PHP 튜토리얼: PHP를 사용하여 파일 내용을 추가하는 방법

PHP 튜토리얼: PHP를 사용하여 파일 내용을 추가하는 방법

王林
王林원래의
2023-08-31 19:33:122017검색

PHP 튜토리얼: PHP를 사용하여 파일 내용을 추가하는 방법

사람들이 웹사이트를 만들 때 일반적으로 데이터는 데이터베이스에 저장됩니다. 그러나 때로는 사람들이 나중에 쉽게 읽거나 수정할 수 있도록 데이터를 파일에 저장해야 하는 경우도 있습니다.

PHP에는 파일에서 데이터를 읽고 쓸 수 있는 다양한 기능이 포함되어 있습니다. 또한 그 중 일부를 사용하여 파일에 데이터를 추가할 수도 있습니다. 이 튜토리얼에서는 PHP를 사용하여 파일에 데이터를 추가하는 두 가지 방법을 배웁니다.

이해 file_put_contents() 기능

file_put_contents() 함수는 PHP를 사용하여 파일에 데이터를 쓰는 가장 쉬운 방법 중 하나입니다. 동작을 결정하기 위해 네 가지 다른 매개변수를 허용합니다. 이러한 매개변수는 다음과 같습니다:

  • filename: 데이터를 쓰려는 파일 위치의 경로입니다.
  • data:指定要写入文件的数据。它通常是一个字符串,但您也可以指定一个数组或流资源。该函数将使用 implode() 1차원 배열의 내용을 자동으로 내파하여 데이터를 파일에 씁니다.
  • 플래그: flags:控制 file_put_contents() 的行为。您可以在此处设置三个不同的标志,可以单独设置,也可以与其他标志组合设置。可以使用 |의 동작을 제어합니다. 여기에서는 개별적으로 또는 다른 플래그와 조합하여 세 가지 다른 플래그를 설정할 수 있습니다. | 연산자를 사용하여 다양한 플래그를 결합할 수 있습니다.
  • context: 스트림의 콘텐츠를 읽거나 액세스할 때 PHP에 추가 데이터를 제공하는 경우에만 유용합니다.

file_put_contents()

를 사용하여 PHP 파일에 데이터 추가

file_put_contents() 函数的默认行为是用您提供的任何新数据覆盖给定文件的内容。当您想要保留旧数据并添加一些新数据时,这是不可取的。在这种情况下,您可以使用 FILE_APPEND 함수의 기본 동작은 제공된 파일의 내용을 사용자가 제공한 새 데이터로 덮어쓰는 것입니다. 이전 데이터를 유지하고 새 데이터를 추가하려는 경우에는 권장되지 않습니다. 이 경우 FILE_APPEND 플래그를 사용하여 PHP가 파일에 원래 있던 것의 끝에 데이터를 추가해야 함을 알릴 수 있습니다.

특수한 경우에는 여러 스크립트의 데이터를 동시에 파일에 추가할 수 있습니다. 이러한 경우 LOCK_EX 플래그를 사용하여 파일에 대한 단독 잠금을 얻는 것이 좋습니다. 이는 데이터 손상이나 기타 예상치 못한 동작을 방지하는 데 도움이 됩니다. 이 플래그를 사용하면 다른 스크립트는 자체 데이터를 추가하기 전에 현재 프로세스가 파일 쓰기를 완료할 때까지 기다립니다.

다음은 file_put_contents()을 사용하여 기존 파일에 일부 텍스트를 추가하는 예입니다.

으아악

위의 예에서는 캐나다에 대한 정보가 포함된 canada.txt라는 파일에 일부 문자열을 작성하고 있습니다. 두 문자열 모두 파일 끝에 하나씩 추가됩니다.

이 기능은 파일이 아직 존재하지 않는 경우 파일을 생성한다는 점을 기억하세요. 단, 존재하지 않는 디렉터리는 생성하지 않습니다. 따라서 쓰기를 시작하기 전에 파일이 존재하는지 확인하는 것이 좋습니다.

PHP 파일에 데이터를 쓰려면 fwrite()를 사용하세요

file_put_contents() 函数将数据写入 PHP 文件类似于按顺序调用 fopen()fwrite()fclose() 함수를 사용하여 PHP 파일에 데이터를 쓰는 것은

,

fopen() 即可。之后,使用 fwrite() 函数将内容多次写入文件。最后,您可以简单地调用 fclose()을 순서대로 호출하는 것과 유사합니다. 이는 동일한 파일에 여러 번 쓰기를 수행하는 것이 파일을 계속해서 열고 닫으므로 비효율적일 수 있음을 의미합니다.

이 문제를 해결하는 한 가지 방법은 이러한 함수를 직접 호출하는 것입니다. 쓰기 작업 시작 시 fopen()를 호출하면 됩니다. 그 후

함수를 사용하여 파일에 내용을 여러 번 씁니다. 마지막으로
    를 호출하여 파일 핸들을 닫을 수 있습니다. 이제 각 단계를 자세히 논의해 보겠습니다.
  • filename
  • 이 함수는 PHP에 파일을 여는 방법을 알려주는 데 사용할 수 있는 네 가지 매개 변수를 허용합니다.
  • mode:打开文件的模式可以用一个或两个字符指定。我们想要打开该文件,然后向其中添加一些文本。要追加,请使用字符 aa+ 设置模式。这会将文件指针放置在文件末尾。如果文件不存在,PHP 也会尝试创建该文件。使用a+
  • : 열려는 파일의 이름입니다. use_include_path
  • 에서 파일을 열 때 파일 내용을 읽을 수도 있습니다. context
: 지정된 포함 경로에서도 파일을 찾도록 PHP에 지시합니다. 기본값은 거짓입니다.

fwrite() 函数向文件添加信息。 fwrite()

: 스트림의 콘텐츠를 읽거나 액세스할 때 PHP에 추가 데이터를 제공하는 경우에만 유용합니다.
  • resource:这是我们之前使用 fopen()이제 파일이 열렸으므로
  • 기능을 사용하여 파일에 정보를 추가할 수 있습니다.
  • 세 가지 매개변수가 필요합니다: string
  • resource: 이전에 length를 사용하여 생성한 리소스 핸들입니다.

: 파일에 추가할 텍스트입니다. fclose()

🎜: 선택 사항이며 파일에 써야 하는 최대 바이트 수를 설정하는 데 사용됩니다. 🎜 🎜 🎜모든 쓰기 작업이 완료된 후 🎜 기능을 사용하여 파일 핸들을 닫을 수 있습니다. 🎜

这里是一个示例,向您展示如何使用 fopen()fwrite()fclose() 将数据附加到文件。

<?php

//open the file
$square_file = fopen("squares.txt", "a+");

//write the squares from 1 to 10
for($i = 1; $i <= 10; $i++) {
    $square = $i*$i;
    $cube = $square*$i;
    $line = "Square of $i is: $square.\n";
    fwrite($square_file, $line);
}

//read the first line of the file and echo
fseek($square_file, 0);
echo fgets($square_file);

//close the file
fclose($square_file);

?>
square.txt的内容
Square of 1 is: 1.
Square of 2 is: 4.
Square of 3 is: 9.
Square of 4 is: 16.
Square of 5 is: 25.
Square of 6 is: 36.
Square of 7 is: 49.
Square of 8 is: 64.
Square of 9 is: 81.
Square of 10 is: 100.

在本例中,我们将数字 1 到 10 的平方写入名为 square.txt 的文件中。我们在 a+ 模式下使用 fopen() 函数打开它,这意味着我们还可以从文件中读取内容以及附加我们自己的内容。每次 for 循环迭代时,都会将包含 $i 及其平方的当前值的新行附加到我们的文件中。

有一些函数,例如 fread()fgets(),您可以使用它们来读取文件中写入的内容。但是,您通常需要使用 fseek() 将文件指针放置在所需位置以按预期读取数据。循环结束后,我们转到文件的开头并使用 fgets() 读取其第一行。

最后,我们通过调用函数 fclose() 关闭文件句柄。

最终想法

在本教程中,我们学习了使用 PHP 将数据附加到文件的两种不同方法。使用 file_put_contents() 函数可以更方便地将数据写入文件。但是,当您必须对一个文件执行多次写入操作时,使用 fwrite() 会更有效。使用 fopen() 打开文件来附加数据还可以让您选择通过将文件指针移动到所需位置来读取其内容。

위 내용은 PHP 튜토리얼: PHP를 사용하여 파일 내용을 추가하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.