Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Tutorial: So hängen Sie Dateiinhalte mit PHP an

PHP-Tutorial: So hängen Sie Dateiinhalte mit PHP an

王林
王林Original
2023-08-31 19:33:122050Durchsuche

PHP-Tutorial: So hängen Sie Dateiinhalte mit PHP an

Wenn Menschen eine Website erstellen, werden Daten normalerweise in einer Datenbank gespeichert. Manchmal müssen wir jedoch Daten in einer Datei speichern, damit sie später einfacher gelesen oder geändert werden können.

PHP verfügt über viele Funktionen zum Lesen und Schreiben von Daten aus Dateien. Einige davon können wir auch verwenden, um Daten an Dateien anzuhängen. In diesem Tutorial lernen Sie zwei verschiedene Möglichkeiten kennen, mit PHP Daten an eine Datei anzuhängen.

Funktionen verstehenfile_put_contents()

Die Funktion file_put_contents() ist eine der einfachsten Möglichkeiten, Daten mit PHP in eine Datei zu schreiben. Es akzeptiert vier verschiedene Parameter, um sein Verhalten zu bestimmen. Diese Parameter sind:

  • : Der Pfad zum Dateispeicherort, in den wir Daten schreiben möchten. filename
  • Den Inhalt eines eindimensionalen Arrays automatisch implodieren, um Daten in eine Datei zu schreiben. data:指定要写入文件的数据。它通常是一个字符串,但您也可以指定一个数组或流资源。该函数将使用 implode()
  • flags: Steuern Sie das Verhalten von
  • . Hier können Sie drei verschiedene Flags einzeln oder in Kombination mit anderen Flags setzen. Verschiedene Flags können mit dem Operator | kombiniert werden. flags:控制 file_put_contents() 的行为。您可以在此处设置三个不同的标志,可以单独设置,也可以与其他标志组合设置。可以使用 |
  • : Nur sinnvoll, wenn Sie PHP zusätzliche Daten bereitstellen, wenn Sie Inhalte im Stream lesen oder darauf zugreifen. context
Fügen Sie Daten mit

file_put_contents() an PHP-Dateien an

Das Standardverhalten der Funktion besteht darin, den Inhalt der angegebenen Datei mit allen neuen Daten zu überschreiben, die Sie bereitstellen. Dies ist nicht ratsam, wenn Sie die alten Daten behalten und einige neue Daten hinzufügen möchten. In diesem Fall können Sie das Flag FILE_APPEND verwenden, um PHP wissen zu lassen, dass es die Daten an das Ende dessen anhängen soll, was ursprünglich in der Datei vorhanden war. file_put_contents() 函数的默认行为是用您提供的任何新数据覆盖给定文件的内容。当您想要保留旧数据并添加一些新数据时,这是不可取的。在这种情况下,您可以使用 FILE_APPEND

In einigen Sonderfällen kann es sein, dass Sie Daten aus mehreren Skripten gleichzeitig an eine Datei anhängen. In diesen Fällen wird empfohlen, das Flag

zu verwenden, um eine exklusive Sperre für die Datei zu erhalten. Dies trägt dazu bei, Datenbeschädigungen oder andere unerwartete Verhaltensweisen zu verhindern. Wenn Sie dieses Flag verwenden, warten andere Skripte, bis der aktuelle Prozess das Schreiben in die Datei abgeschlossen hat, bevor sie ihre eigenen Daten anhängen. LOCK_EX

Hier ist ein Beispiel, bei dem

verwendet wird, um Text an eine vorhandene Datei anzuhängen. file_put_contents()

<?php

// Original File: Canada is a country in North America. .... bi-national land border.

// File Contents After this Line: Canada is a country in North America. .... bi-national land border.  Canada's capital is Ottawa,
file_put_contents('canada.txt', " Canada's capital is Ottawa,",  FILE_APPEND | LOCK_EX);

// File Contents After this Line: Canada is a country in North America. .... bi-national land border.  Canada's capital is Ottawa, and its three largest metropolitan areas are Toronto, Montreal, and Vancouver.
file_put_contents('canada.txt', " and its three largest metropolitan areas are Toronto, Montreal, and Vancouver.",  FILE_APPEND | LOCK_EX);

?>

Im obigen Beispiel schreiben wir einige Zeichenfolgen in eine Datei namens

canada.txt, die Informationen über Kanada enthält. Beide Strings werden nacheinander an das Ende der Datei angehängt.

Denken Sie daran, dass diese Funktion eine Datei erstellt, wenn diese noch nicht existiert. Es wird jedoch kein Verzeichnis erstellt, das nicht existiert. Daher ist es wahrscheinlich eine gute Idee, zu prüfen, ob die Datei existiert, bevor Sie mit dem Schreiben beginnen.

Verwenden Sie

, um Daten in eine PHP-Datei zu schreibenfwrite()

Die Verwendung der Funktion

zum Schreiben von Daten in eine PHP-Datei ähnelt dem Aufruf von file_put_contents() 函数将数据写入 PHP 文件类似于按顺序调用 fopen()fwrite()fclose(),

und

nacheinander. Das bedeutet, dass das Ausführen mehrerer Schreibvorgänge in derselben Datei ineffizient sein kann, da wir die Datei ständig immer wieder öffnen und schließen. fopen() 即可。之后,使用 fwrite() 函数将内容多次写入文件。最后,您可以简单地调用 fclose()

Eine Möglichkeit, dieses Problem zu lösen, besteht darin, diese Funktionen selbst aufzurufen. Rufen Sie einfach

zu Beginn des Schreibvorgangs auf. Verwenden Sie anschließend die Funktion fopen(), um den Inhalt mehrmals in die Datei zu schreiben. Zum Schluss können Sie einfach

aufrufen, um das Dateihandle zu schließen. Lassen Sie uns nun jeden Schritt im Detail besprechen.
  • filename Die Funktion akzeptiert vier verschiedene Parameter, mit denen Sie PHP mitteilen können, wie die Datei geöffnet werden soll.
  • mode:打开文件的模式可以用一个或两个字符指定。我们想要打开该文件,然后向其中添加一些文本。要追加,请使用字符 aa+ 设置模式。这会将文件指针放置在文件末尾。如果文件不存在,PHP 也会尝试创建该文件。使用a+
  • : Der Name der Datei, die Sie öffnen möchten.
  • use_include_path Wenn Sie eine Datei in
  • öffnen, können Sie auch den Dateiinhalt lesen.
  • context
  • : Weist PHP an, auch im angegebenen Include-Pfad nach Dateien zu suchen. Der Standardwert ist falsch.

fwrite() 函数向文件添加信息。 fwrite(): Nur sinnvoll, wenn Sie PHP zusätzliche Daten bereitstellen, wenn Sie Inhalte im Stream lesen oder darauf zugreifen.

  • Da die Datei nun geöffnet ist, können wir mit der Funktion resource:这是我们之前使用 fopen() Informationen zur Datei hinzufügen.
  • erfordert drei Parameter:
  • string
  • resource: Dies ist das Ressourcenhandle, das wir zuvor mit
  • erstellt haben. length
: Text, der an die Datei angehängt werden soll.

fclose()

: Optional, wird verwendet, um die maximale Anzahl von Bytes festzulegen, die in die Datei geschrieben werden sollen. 🎜 🎜 🎜Nachdem alle Schreibvorgänge abgeschlossen sind, können Sie das Dateihandle mit der Funktion 🎜 schließen. 🎜

这里是一个示例,向您展示如何使用 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() 打开文件来附加数据还可以让您选择通过将文件指针移动到所需位置来读取其内容。

Das obige ist der detaillierte Inhalt vonPHP-Tutorial: So hängen Sie Dateiinhalte mit PHP an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn