Maison  >  Article  >  développement back-end  >  Application des fonctions d'exploitation de fichiers PHP

Application des fonctions d'exploitation de fichiers PHP

墨辰丷
墨辰丷original
2018-06-11 10:34:381576parcourir

Cet article présente principalement les exemples d'application de la fonction de lecture de fichiers PHP ainsi que l'utilisation et les différences des fonctions de lecture de données de fichiers couramment utilisées. Il est très détaillé. Les amis dans le besoin peuvent s'y référer.

Les opérations de lecture de fichiers PHP impliquent plus de fonctions d'opération de fichiers PHP que d'opérations d'écriture de fichiers. Ces fonctions seront présentées en détail dans les exemples de code.

La méthode de lecture des données stockées dans des fichiers texte implique principalement trois étapes et certaines opérations sur les fichiers fonctionnent comme suit :

1. Ouvrez le fichier (fonction d'opération sur les fichiers : fopen)
2. Lecture des données du fichier (fonctions d'opération de fichier : fgets, file, readfile, feof, etc.)
3. Fermez le fichier (fonction d'opération de fichier : fclose)

Ce qui suit utilise toujours l'opération de lecture et d'écriture de fichier PHP. Exemples de code pour expliquer les fichiers L'application spécifique de la méthode de lecture. Dans l'exemple, en appelant différentes fonctions d'opération de lecture de fichiers PHP pour lire les données du fichier texte, vous pouvez approfondir votre compréhension des fonctions d'opération de lecture de fichiers PHP afin qu'elles puissent être raisonnablement appliqué dans le développement de sites Web PHP. Les données écrites dans le fichier texte proviennent du tutoriel d'écriture de fichiers sur les opérations de lecture et d'écriture de fichiers PHP. Vous pouvez également vous référer à cet article pour le mode de lecture et d'écriture de fichiers dans la fonction fopen.

Exemple de code d'opération de lecture de fichier PHP

<?
$readFun = "fread";
switch ($readFun)
{
case "fgetss":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
$allowable_tags = "<h1>";
while (!feof($fp)) {
$output = fgetss($fp,100,$allowable_tags);
echo $output;
}
fclose($fp);
break;
case "fgetcsv":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
while (!feof($fp)) {
$output = fgetcsv($fp,100,"\t");
print_r($output);
}
fclose($fp);
break;
case "readfile":
echo readfile("leapsoulcn.txt");
break;
case "fpassthru":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
if(!fpassthru($fp))
exit();
fclose($fp);
break;
case "file":
$output = file("leapsoulcn.txt");
print_r($output);
break;
case "fgetc":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
while (!feof($fp)) {
$str = fgetc($fp);
echo ($str == "\n"?"<br/>":$str);
}
fclose($fp);
break;
case "fread":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
echo fread($fp,300);
fclose($fp);
break;
default:
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
while (!feof($fp)) {
$output = fgets($fp,100);
echo $output;
}
fclose($fp);
break;
}
?>

Remarque : dans l'exemple ci-dessus, vous pouvez appeler différentes méthodes de lecture de fichier PHP en attribuant une valeur à $readFun, impliquant des fonctions d'opération de lecture de fichier PHP. incluent fgets, fgetss, fgetcsv, readfile, fpassthru, file, fgetc et d'autres fonctions.

La différence entre les fonctions d'opération de lecture de fichiers PHP fgets, fgetss et fgetcsv

Dans l'exemple de code, la fonction d'opération de lecture de fichiers PHP par défaut est fgets, fgetss et La fonction de la fonction fgetcsv est la même que celle de fgets, qui lit une ligne du fichier à la fois jusqu'à la fin du fichier. Ici, je définis la longueur des données à lire dans le fichier texte sur 100, c'est-à-dire que la longueur maximale de lecture est de 99 (100-1). De cette façon, lorsque le caractère de nouvelle ligne n ou le caractère de fin de fichier EOF est rencontré, ou 99 est lu à partir du fichier. Arrêtez de lire les données lorsque les octets sont atteints. La fonction fgets renvoie les données lues dans le fichier, sous forme de chaîne.

La fonction fgetss est une variante de la fonction fgets. Elle peut supprimer les balises PHP et HTML et filtrer les données inutiles en passant le troisième paramètre, ce qui peut améliorer la sécurité du site Web. Par exemple, le livre d'or peut filtrer les entrées des utilisateurs. data, le prototype de la fonction fgetss est le suivant :

string fgetss(resource fp,int length, string[optional] Allowable_tags)

allowable_tags le paramètre est facultatif, dans le exemple I J'ai écrit à l'avance une ligne de texte contenant les balises html, body et h1 dans le fichier leapsoulcn.txt, puis dans le code que j'ai défini pour que seule la balise h1 puisse apparaître.

La fonction fgetcsv est une autre variante de fgets. La différence est que lorsque les données écrites dans votre fichier texte utilisent des délimiteurs, vous pouvez utiliser fgetcsv pour diviser une ligne en plusieurs lignes, et le résultat renvoyé est stocké dans le fichier texte. array, le prototype de la fonction est le suivant :

array fgetcsv(resource fp,int length, string[facultatif] délimiteur,string[facultatif] enceinte)

le délimiteur est option disponible, puisque j'ai utilisé t dans les données écrites dans le fichier auparavant, donc dans l'exemple, j'ai utilisé t comme délimiteur dans la fonction de lecture de fichier fgetcsv, puis j'ai imprimé la structure de tableau renvoyée par fgetcsv via print_r.

Ce que les trois fonctions d'opération de lecture de fichiers PHP fgets, fgetss et fgetcsv ont en commun, c'est qu'elles doivent toutes utiliser la fonction fopen pour ouvrir le fichier lu à l'avance, et en même temps utiliser la fonction feof pour déterminer si le pointeur de fichier atteint la fin du fichier. N'oubliez pas de lire Une fois l'opération de récupération terminée, utilisez la fonction fclose pour fermer le fichier.

fgetc : Lire un seul caractère
La fonction fgetc permet de lire un caractère Dans l'exemple de code, je lis les caractères un par un, et lorsque n caractères sont rencontrés, ils sont convertis en html. files.br pour afficher des effets de retour à la ligne spécifiques dans le navigateur. Bien entendu, l'efficacité de cette fonction est définitivement faible et n'est pas recommandée.

La différence entre les fonctions d'opération de lecture de fichiers PHP readfile, fpassthru et file

Ce que les trois fonctions ont en commun est qu'elles peuvent lire l'intégralité du fichier en même temps, pas tout à la fois Lire une ligne ou un caractère. La différence est :
La fonction readfile ouvre le fichier, renvoie le contenu du fichier et l'affiche directement sur le navigateur. Comme la fonction fopen, la valeur de retour de la fonction est le nombre total de caractères dans le fichier. La fonction readfile est facultative, indiquant si PHP doit rechercher les fichiers dans include_path. Dans l'exemple de code, j'utilise l'instruction echo non pas pour afficher le contenu du fichier lu, mais pour afficher le nombre total de caractères du fichier lus. Le contenu du fichier lu a été automatiquement généré par la fonction readfile. Le prototype de la fonction readfile est le suivant :
int readfile(string filename,int[optional] use_include_path)

La fonction file est une autre méthode de lecture de fichiers. Elle envoie le contenu du fichier lu à un tableau. , une cellule du tableau par ligne. Le prototype de la fonction de fichier est le suivant :
array file(string filename,bool[optional] use_include_path)

  fpassthru()函数用来输出文件指针处的所有剩余数据,即如果文件指针并不在开头,它只输出文件指针后面的数据。该函数将给定的文件指针从当前的位置读取到EOF,并把结果写到输出缓冲区,返回值为输出的字符数。发生错误时,返回FALSE。与readfile()函数相比,fpassthru()函数需要首先打开文件,数据读取完毕后要关闭文件。

  fread与file_exists、filesize函数

  fread函数也是读取文件的一种方法,其可以从文件中读取任意字节,要么满足length要么读到文件末尾。read函数原型如下:

string fread(resource fp,int length)

  在用到fread函数时,当你想读取文件全部数据,又不知道文件数据长度时,filesize函数可以解决这个问题,即
 

<?
  @$fp = fopen("leapsoulcn.txt","r") or die("system error");
  echo fread($fp,filesize("leapsoulcn.txt"));
  fclose($fp);
?>

在PHP文件读写操作教程中我们还没有使用过file_exists函数,通常在PHP网站开发中,出于各种考虑,有时当文件不存在时,我们并不像创建新文件,这时我们就需要在使用fopen函数前使用file_exists函数判断文件是否存在,即

<?
if(file_exists("leapsoulcn.txt"))
{
  //进行PHP文件读写操作
}
?>

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

PHP自动生成表单的方法

php操作MySQL数据库的方法

php针对服务器端预定义变量$_SERVER的方法

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