Maison  >  Article  >  développement back-end  >  Vous n'arrivez toujours pas à faire la différence entre fgets, fgetss et fgetcsv en PHP ? Collectionnez vite !

Vous n'arrivez toujours pas à faire la différence entre fgets, fgetss et fgetcsv en PHP ? Collectionnez vite !

藏色散人
藏色散人original
2021-08-19 17:52:293065parcourir

Dans l'article précédent "Comment boucler des tableaux associatifs en PHP (deux méthodes)", je vous ai présenté deux méthodes de bouclage à travers des tableaux associatifs en PHP. Les amis intéressés peuvent en apprendre davantage ~

Le thème de cet article Cet article. est de vous présenter les différences spécifiques entre les fonctions fgets, fgetss et fgetcsv en PHP !

En fait, ces trois fonctions sont toutes liées aux fonctions d'opération de fichiers en PHP Afin de permettre à chacun de maîtriser l'utilisation de différentes fonctions dans différentes situations, je vais résumer les différences entre elles.

Maintenant, je vais présenter respectivement les fonctions fgets, fgetss et fgetcsv avec des exemples :

1 : Fonction fgets() fgets()函数

fgets()函数用于每次从文件中读取一行;它会一直读取,直到遇到换行符 (n) 或 EOF;读取的最大长度是指定的长度减去 1 个字节。

语法如:

string fgets ( resource $handle [, int $length ] )

参数:

handle:文件指针必须是有效的,必须指向由 fopen() 或 fsockopen() 成功打开的文件(并还未由 fclose() 关闭)。

length:从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。

实例:

创建一个test.txt文件,内容如下:(该内容段落来源于网络,侵删歉)

<p>秋已经很深了,似乎随时都可能陨落,<b>让冬给替代。</b></p>
那呼啸的北风或许正是冬的使者,匆忙而来,不想并未在这土地逗留片刻,就向南而去了。

PHP示例代码如下:

<?php
$file = fopen("test.txt","r");
echo fgets($file);
fclose($file);
?>

输出效果如下:

Vous narrivez toujours pas à faire la différence entre fgets, fgetss et fgetcsv en PHP ? Collectionnez vite !

二:fgetss() 函数

fgets()的一个有趣变体就是fgetss(),它具有以下语法 :

string fgetss(resource fp, int length, string [allowble_tags])

该函数与 fgets() 类似,不同之处在于它会去除在字符串中找到的任何 PHP 和 HTML 标记;如果要保留任何特定标签,可以将它们添加到allowable_tags字符串中;在读取别人写的文件或包含用户输入的文件时,为了安全起见,可以使用fgetss()。

本示例中的test.txt内容同上。

PHP示例代码如下:

<?php
$file = fopen("test.txt","r");
echo fgetss($file);
fclose($file);

输出如下所示:

Vous narrivez toujours pas à faire la différence entre fgets, fgetss et fgetcsv en PHP ? Collectionnez vite !

若要保留特定标签,则可设置如下参数:

<?php
$file = fopen("test.txt","r");
echo fgetss($file,1024,"<p>,<b>");
fclose($file);

效果如下:

Vous narrivez toujours pas à faire la différence entre fgets, fgetss et fgetcsv en PHP ? Collectionnez vite !

三:fgetcsv()
La fonction fgets() est utilisée pour lire le fichier à chaque fois. ligne ; il lit jusqu'à ce qu'un caractère de nouvelle ligne (n) ou EOF soit rencontré ; la longueur maximale lue est la longueur spécifiée moins 1 octet.

Syntaxe telle que :

array fgetcsv(resource fp, int length [, string  delimiter [, string enclosure]])

Paramètres :

handle : Le pointeur de fichier doit être valide et doit pointer vers le fichier ouvert avec succès par fopen() ou fsockopen() (et n'a pas été fermé par fclose()).

length : lit une ligne du fichier pointé par handle et renvoie une chaîne d'une longueur maximale de 1 octet. S'arrête lorsqu'un caractère de nouvelle ligne (inclus dans la valeur de retour), EOF ou une longueur de 1 octet a été lu (selon la première éventualité). Si la longueur n'est pas spécifiée, la valeur par défaut est 1 Ko, soit 1 024 octets.

Exemple :

Créez un fichier test.txt avec le contenu suivant : (Ce paragraphe de contenu provient d'Internet, désolé pour la violation et la suppression)🎜🎜
春天, 夏天, 秋天, 冬天
早晨, 上午, 中午, 晚上
🎜🎜L'exemple de code PHP est le suivant : 🎜🎜
<?php
$file = fopen("test.csv","r");
var_dump(fgetcsv($file));
fclose($file);
🎜 L'effet de sortie est le suivant : 🎜🎜 🎜Vous n'arrivez toujours pas à faire la différence entre fgets, fgetss et fgetcsv en PHP ? Collectionnez vite !🎜 🎜🎜two :fgetss() Une variante intéressante de la fonction 🎜🎜🎜fgets() est fgetss(), qui a la syntaxe suivante : 🎜
array (size=4)
  0 => string &#39;春天&#39; (length=6)
  1 => string &#39; 夏天&#39; (length=7)
  2 => string &#39; 秋天&#39; (length=7)
  3 => string &#39; 冬天&#39; (length=7)
🎜Cette fonction est similaire à fgets(), sauf que cela supprimera toutes les balises PHP et HTML trouvées dans la chaîne ; si vous souhaitez conserver des balises spécifiques, vous pouvez les ajouter à la chaîne Allowable_tags pour des raisons de sécurité lors de la lecture de fichiers écrits par d'autres ou de fichiers contenant ; entrée de l'utilisateur, vous pouvez utiliser fgetss(). 🎜🎜Le contenu de test.txt dans cet exemple est le même que ci-dessus. 🎜🎜🎜L'exemple de code PHP est le suivant : 🎜🎜rrreee🎜Le résultat est le suivant : 🎜🎜Vous narrivez toujours pas à faire la différence entre fgets, fgetss et fgetcsv en PHP ? Collectionnez vite !🎜🎜Si vous souhaitez conserver des balises spécifiques, vous pouvez définir les paramètres suivants : 🎜rrreee🎜L'effet est le suivant : 🎜🎜Vous narrivez toujours pas à faire la différence entre fgets, fgetss et fgetcsv en PHP ? Collectionnez vite !🎜🎜🎜Trois : fgetcsv( ) Fonction🎜🎜🎜 🎜La fonction fgetcsv() est une autre variante de fgets(), avec la syntaxe suivante : 🎜rrreee🎜Lorsque vous utilisez un délimiteur (comme une tabulation ou une virgule), cette fonction délimitera le fichier lignes. 🎜🎜Créez d'abord un fichier test.csv avec le contenu suivant : 🎜rrreee🎜Exemple de code PHP : 🎜rrreee🎜Sortie : 🎜rrreee🎜La plate-forme de site Web chinoise PHP propose de nombreuses ressources pédagogiques vidéo, invitez tout le monde à apprendre "🎜Tutoriel vidéo PHP 🎜" ! 🎜

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