Maison  >  Article  >  développement back-end  >  Tutoriel PHP : Comment ajouter le contenu d'un fichier à l'aide de PHP

Tutoriel PHP : Comment ajouter le contenu d'un fichier à l'aide de PHP

王林
王林original
2023-08-31 19:33:122018parcourir

Tutoriel PHP : Comment ajouter le contenu dun fichier à laide de PHP

Lorsque les gens créent un site Web, les données sont généralement stockées dans une base de données. Cependant, nous devons parfois stocker les données dans un fichier afin qu’il soit plus facile pour les utilisateurs de les lire ou de les modifier ultérieurement.

PHP est livré avec de nombreuses fonctions pour lire et écrire des données à partir de fichiers. Nous pouvons également en utiliser certains pour ajouter des données à des fichiers. Dans ce didacticiel, vous apprendrez deux manières différentes d'ajouter des données à un fichier à l'aide de PHP.

Comprendre file_put_contents()fonctions

La fonction file_put_contents() est l'un des moyens les plus simples d'écrire des données dans un fichier à l'aide de PHP. Il accepte quatre paramètres différents pour déterminer son comportement. Ces paramètres sont :

  • filename : Le chemin d'accès à l'emplacement du fichier où nous voulons écrire des données.
  • data:指定要写入文件的数据。它通常是一个字符串,但您也可以指定一个数组或流资源。该函数将使用 implode() Implosez automatiquement le contenu d'un tableau unidimensionnel pour écrire des données dans un fichier.
  • flags : contrôlez le comportement de flags:控制 file_put_contents() 的行为。您可以在此处设置三个不同的标志,可以单独设置,也可以与其他标志组合设置。可以使用 |. Vous pouvez définir ici trois indicateurs différents, soit individuellement, soit en combinaison avec d'autres indicateurs. Différents indicateurs peuvent être combinés à l'aide de l'opérateur |.
  • context : Utile uniquement si vous fournissez des données supplémentaires à PHP lorsque vous lisez ou accédez au contenu du flux.

Ajouter des données aux fichiers PHP en utilisant file_put_contents()

file_put_contents() 函数的默认行为是用您提供的任何新数据覆盖给定文件的内容。当您想要保留旧数据并添加一些新数据时,这是不可取的。在这种情况下,您可以使用 FILE_APPEND Le comportement par défaut de la fonction est d'écraser le contenu du fichier donné par toutes les nouvelles données que vous fournissez. Ceci n'est pas conseillé lorsque vous souhaitez conserver les anciennes données et ajouter de nouvelles données. Dans ce cas, vous pouvez utiliser l'indicateur FILE_APPEND pour faire savoir à PHP qu'il doit ajouter les données à la fin de ce qui existait initialement dans le fichier.

Dans certains cas particuliers, vous pouvez ajouter des données de plusieurs scripts à un fichier en même temps. Dans ces cas, il est recommandé d'utiliser le drapeau LOCK_EX pour obtenir un verrouillage exclusif sur le fichier. Cela permet d'éviter la corruption des données ou tout autre comportement inattendu. Lorsque vous utilisez cet indicateur, d'autres scripts attendront que le processus en cours ait fini d'écrire dans le fichier avant d'ajouter leurs propres données.

Voici un exemple où file_put_contents() est utilisé pour ajouter du texte à un fichier existant.

<?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);

?>

Dans l'exemple ci-dessus, nous écrivons quelques chaînes dans un fichier appelé canada.txt qui contient des informations sur le Canada. Les deux chaînes sont ajoutées l’une après l’autre à la fin du fichier.

N'oubliez pas que cette fonction créera un fichier s'il n'existe pas encore. Cependant, cela ne crée pas un répertoire qui n’existe pas. C'est donc probablement une bonne idée de vérifier si le fichier existe avant de commencer à y écrire.

Utilisez fwrite() pour écrire des données dans un fichier PHP

Utiliser la fonction file_put_contents() 函数将数据写入 PHP 文件类似于按顺序调用 fopen()fwrite()fclose() pour écrire des données dans un fichier PHP revient à appeler

,

et fopen() 即可。之后,使用 fwrite() 函数将内容多次写入文件。最后,您可以简单地调用 fclose() dans l'ordre. Cela signifie qu'effectuer plusieurs écritures dans le même fichier peut s'avérer inefficace puisque nous ouvrons et fermons constamment le fichier, encore et encore.

Une façon de résoudre ce problème consiste à appeler ces fonctions vous-même. Il suffit d'appeler fopen() au début de l'opération d'écriture. Après cela, utilisez la fonction

pour écrire le contenu dans le fichier plusieurs fois. Enfin, vous pouvez simplement appeler
    pour fermer le descripteur de fichier. Discutons maintenant de chaque étape en détail.
  • filename
  • La fonction accepte quatre paramètres différents que vous pouvez utiliser pour indiquer à PHP comment le fichier doit être ouvert.
  • mode:打开文件的模式可以用一个或两个字符指定。我们想要打开该文件,然后向其中添加一些文本。要追加,请使用字符 aa+ 设置模式。这会将文件指针放置在文件末尾。如果文件不存在,PHP 也会尝试创建该文件。使用a+
  •  : Le nom du fichier que vous souhaitez ouvrir. use_include_path
  • Lorsque vous ouvrez un fichier dans
  • , vous pouvez également lire le contenu du fichier. context
 : demande à PHP de rechercher également les fichiers dans le chemin d'inclusion spécifié. La valeur par défaut est fausse.

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

 : Utile uniquement si vous fournissez des données supplémentaires à PHP lorsque vous lisez ou accédez au contenu du flux.
  • resource:这是我们之前使用 fopen()Maintenant que le fichier est ouvert, nous pouvons ajouter des informations au fichier à l'aide de la fonction
  • .
  • nécessite trois paramètres : string
  • ressource : il s'agit du descripteur de ressource que nous avons créé précédemment en utilisant length.

 : Texte à ajouter au fichier. fclose()

🎜 : Facultatif, utilisé pour définir le nombre maximum d'octets qui doivent être écrits dans le fichier. 🎜 🎜 🎜Une fois toutes les opérations d'écriture terminées, vous pouvez fermer le descripteur de fichier à l'aide de la fonction 🎜. 🎜

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn