<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 本文与程序无关,这里仅作为演示 PHP 代码块使用</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"文章即将开始,请往下看..."</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-comment"># PHP中fgetss函数怎么用?完整用法详解适合新手了解</span></span><span>
在日常 PHP 编程中,我们经常需要从文件中逐行读取内容。常用的函数有 `</span><span><span class="hljs-title function_ invoke__">fgets</span></span><span>()`,但如果文件中包含 HTML 或 PHP 标签,有时我们并不希望这些标签直接保留。这时候,`</span><span><span class="hljs-title function_ invoke__">fgetss</span></span><span>()` 就派上用场了。
</span><span><span class="hljs-comment">## 一、fgetss函数的基本介绍</span></span><span>
`</span><span><span class="hljs-title function_ invoke__">fgetss</span></span><span>()` 是 PHP 提供的一个文件读取函数,与 `</span><span><span class="hljs-title function_ invoke__">fgets</span></span><span>()` 类似,区别在于它会在读取时**自动去除 HTML 和 PHP 标签**,从而避免一些潜在的安全问题。它常被用于处理用户上传的文本文件,或者在读取带有 HTML 标签的文件时,只保留纯文本内容。
**函数原型:**
```php
</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-title function_ invoke__">fgetss</span></span><span> ( resource </span><span><span class="hljs-variable">$handle</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$length</span></span><span> [, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$allowable_tags</span></span><span> ] )
</span></span>
: Une poignée de fichier ouverte par fopen () .
$ Longueur : le nombre maximum d'octets lus par temps.
$ adulable_tags (facultatif): permet des balises HTML conservées.
fgets () : Lisez complètement une ligne dans le fichier, y compris les balises HTML.
fGetSSS () : Lors de la lecture, les balises HTML et PHP sont filtrées, et seul le texte brut est conservé (à moins que les balises partielles ne soient autorisées par les paramètres).
Par exemple:
<span><span><span class="hljs-variable">$fp</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">"test.txt"</span></span><span>, </span><span><span class="hljs-string">"r"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">fgets</span></span><span>(</span><span><span class="hljs-variable">$fp</span></span><span>); </span><span><span class="hljs-comment">// Sortira unHTMLLe contenu complet de la balise</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">fgetss</span></span><span>(</span><span><span class="hljs-variable">$fp</span></span><span>); </span><span><span class="hljs-comment">// Sera supprimé automatiquementHTMLÉtiquette</span></span><span>
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$fp</span></span><span>);
</span></span>Supposons que le contenu du fichier test.txt est:
<span><span><span class="hljs-tag"><<span class="hljs-name">b</span></span></span><span>>C'est du texte audacieux</span><span><span class="hljs-tag"></<span class="hljs-name">b</span></span></span><span>>
</span></span>Le résultat de la sortie est:
<span><span>C'est du texte audacieux
</span></span>Si nous voulons conserver certaines balises HTML, elle peut être implémentée via le troisième paramètre.
Exemple:
<span><span><span class="hljs-variable">$fp</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">"test.txt"</span></span><span>, </span><span><span class="hljs-string">"r"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">fgetss</span></span><span>(</span><span><span class="hljs-variable">$fp</span></span><span>, </span><span><span class="hljs-number">1024</span></span><span>, </span><span><span class="hljs-string">"<b><i>"</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$fp</span></span><span>);
</span></span>Supposons que le contenu de Test.txt est:
<span><span><span class="hljs-tag"><<span class="hljs-name">b</span></span></span><span>>Audacieux</span><span><span class="hljs-tag"></<span class="hljs-name">b</span></span></span><span>>et</span><span><span class="hljs-tag"><<span class="hljs-name">i</span></span></span><span>>Italique</span><span><span class="hljs-tag"></<span class="hljs-name">i</span></span></span><span>>ainsi que</span><span><span class="hljs-tag"><<span class="hljs-name">u</span></span></span><span>>Souligner</span><span><span class="hljs-tag"></<span class="hljs-name">u</span></span></span><span>>
</span></span>Le résultat de la sortie est:
<span><span><span class="hljs-tag"><<span class="hljs-name">b</span></span></span><span>>Audacieux</span><span><span class="hljs-tag"></<span class="hljs-name">b</span></span></span><span>>et</span><span><span class="hljs-tag"><<span class="hljs-name">i</span></span></span><span>>Italique</span><span><span class="hljs-tag"></<span class="hljs-name">i</span></span></span><span>>ainsi queSouligner
</span></span>Vous pouvez voir que les balises <b> et <i> sont conservées pendant que le <u> est supprimé.
Problèmes de codage : S'il y a chinois dans le fichier, veillez à utiliser le format de codage approprié (comme UTF-8).
Problèmes de performances : FGetSS () effectuera le filtrage des balises à chaque fois qu'il est appelé, et si vous traitez un grand nombre de fichiers, les performances peuvent être légèrement inférieures à FGETS () .
Version PHP : Il convient de noter que FGETSSS () a été supprimé après PHP 7.3 et n'est plus recommandé. Une alternative consiste à utiliser fgets () avec strip_tags () :
<span><span><span class="hljs-variable">$line</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fgets</span></span><span>(</span><span><span class="hljs-variable">$fp</span></span><span>);
</span><span><span class="hljs-variable">$line</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strip_tags</span></span><span>(</span><span><span class="hljs-variable">$line</span></span><span>, </span><span><span class="hljs-string">"<b><i>"</span></span><span>);
</span></span>FGetSSS () est une fonction de lecture de fichiers pratique qui peut automatiquement supprimer les balises HTML et PHP pendant le processus de lecture.
Pour les cas où certaines balises doivent être conservées, elles peuvent être spécifiées via le troisième paramètre.
Dans la nouvelle version de PHP, il est recommandé d'utiliser la combinaison de fgets () + strip_tags () pour obtenir la même fonction.
Grâce à cet article, je crois que les novices peuvent comprendre l'utilisation de fGetSS () et l'utiliser avec flexion dans le développement réel.