<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>
: Ein von fopen () geöffneter Dateihandle.
$ Länge : Die maximale Anzahl von Bytes, die pro Zeit gelesen wurden.
$ zulässiger_Tags (optional): Ermöglicht beibehaltene HTML -Tags.
FGets () : Lesen Sie eine Zeile in der Datei vollständig, einschließlich HTML -Tags.
fGetss () : Beim Lesen werden HTML- und PHP -Tags herausgefiltert und nur ein einfacher Text erhalten (es sei denn, teilweise Tags sind durch Parameter zulässig).
Zum Beispiel:
<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">// Wird ausgeben aHTMLDer vollständige Inhalt des Tags</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">// Wird automatisch entferntHTMLEtikett</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>Angenommen, der Inhalt der Datei test.txt lautet:
<span><span><span class="hljs-tag"><<span class="hljs-name">b</span></span></span><span>>Das ist mutiger Text</span><span><span class="hljs-tag"></<span class="hljs-name">b</span></span></span><span>>
</span></span>Das Ausgangsergebnis ist:
<span><span>Das ist mutiger Text
</span></span>Wenn wir einige HTML -Tags beibehalten möchten, kann dies über den dritten Parameter implementiert werden.
Beispiel:
<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>Angenommen, der Inhalt von test.txt lautet:
<span><span><span class="hljs-tag"><<span class="hljs-name">b</span></span></span><span>>Deutlich</span><span><span class="hljs-tag"></<span class="hljs-name">b</span></span></span><span>>Und</span><span><span class="hljs-tag"><<span class="hljs-name">i</span></span></span><span>>Kursiv</span><span><span class="hljs-tag"></<span class="hljs-name">i</span></span></span><span>>sowie</span><span><span class="hljs-tag"><<span class="hljs-name">u</span></span></span><span>>Unterstreichen</span><span><span class="hljs-tag"></<span class="hljs-name">u</span></span></span><span>>
</span></span>Das Ausgangsergebnis ist:
<span><span><span class="hljs-tag"><<span class="hljs-name">b</span></span></span><span>>Deutlich</span><span><span class="hljs-tag"></<span class="hljs-name">b</span></span></span><span>>Und</span><span><span class="hljs-tag"><<span class="hljs-name">i</span></span></span><span>>Kursiv</span><span><span class="hljs-tag"></<span class="hljs-name">i</span></span></span><span>>sowieUnterstreichen
</span></span>Sie können sehen, dass die <b> und <i> Tags beibehalten werden, während das <u> entfernt wird.
Codierungsprobleme : Wenn in der Datei Chinesen vorhanden sind, achten Sie darauf, das entsprechende Codierungsformat (wie UTF-8) zu verwenden.
Leistungsprobleme : FGetss () führt jedes Mal, wenn Sie aufgerufen werden, das Tag -Filtering durch, und wenn Sie eine große Anzahl von Dateien verarbeiten, kann die Leistung geringfügig niedriger sein als FGets () .
PHP -Version : Es ist zu beachten, dass FGetss () nach Php 7.3 entfernt wurde und nicht mehr empfohlen wird. Eine Alternative besteht darin , fGets () mit Strip_tags () zu verwenden:
<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>fGetss () ist eine bequeme Funktion zum Lesen von Dateien, mit der HTML- und PHP -Tags während des Lesevorgangs automatisch entfernen können.
In Fällen, in denen einige Tags beibehalten werden müssen, können sie durch den dritten Parameter angegeben werden.
In der neuen Version von PHP wird empfohlen, die Kombination von fGets () + strip_tags () zu verwenden, um dieselbe Funktion zu erzielen.
In diesem Artikel glaube ich, dass Anfänger die Verwendung von fGetss () verstehen und sie in der tatsächlichen Entwicklung flexibel verwenden können.