現在の位置: ホーム> 最新記事一覧> PHPでFGETSS機能を使用する方法は?完全な使用の詳細な説明は、初心者が理解するのに適しています

PHPでFGETSS機能を使用する方法は?完全な使用の詳細な説明は、初心者が理解するのに適しています

gitbox 2025-09-19

<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>

  • Fopen()によって開かれたファイルハンドル。

  • $の長さ:時間ごとに読み取られるバイトの最大数。

  • $ Allowable_Tags (オプション):保持されたHTMLタグを許可します。

2。fgetssとfgetsの違い

  • fgets() :HTMLタグを含むファイルの行を完全に読み取ります。

  • FGETSS() :読み取りの場合、HTMLおよびPHPタグがフィルタリングされ、平易なテキストのみが保持されます(パラメーターによって部分タグが許可されない限り)。

例えば:

 <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">// 出力aHTMLタグの完全な内容</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">// 自動的に削除されますHTMLラベル</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>

test.txtファイルのコンテンツは次のとおりです。

 <span><span><span class="hljs-tag">&lt;<span class="hljs-name">b</span></span></span><span>&gt;これは大胆なテキストです</span><span><span class="hljs-tag">&lt;/<span class="hljs-name">b</span></span></span><span>&gt;
</span></span>

出力の結果は次のとおりです。

 <span><span>これは大胆なテキストです
</span></span>

3. aptosable_tagsパラメーターを使用して、いくつかのタグを保持します

いくつかのHTMLタグを保持したい場合は、3番目のパラメーターを使用して実装できます。

例:

 <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">"&lt;b&gt;&lt;i&gt;"</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>

test.txtのコンテンツは次のとおりです。

 <span><span><span class="hljs-tag">&lt;<span class="hljs-name">b</span></span></span><span>&gt;大胆な</span><span><span class="hljs-tag">&lt;/<span class="hljs-name">b</span></span></span><span>&gt;そして</span><span><span class="hljs-tag">&lt;<span class="hljs-name">i</span></span></span><span>&gt;イタリック</span><span><span class="hljs-tag">&lt;/<span class="hljs-name">i</span></span></span><span>&gt;同様に</span><span><span class="hljs-tag">&lt;<span class="hljs-name">u</span></span></span><span>&gt;下線</span><span><span class="hljs-tag">&lt;/<span class="hljs-name">u</span></span></span><span>&gt;
</span></span>

出力の結果は次のとおりです。

 <span><span><span class="hljs-tag">&lt;<span class="hljs-name">b</span></span></span><span>&gt;大胆な</span><span><span class="hljs-tag">&lt;/<span class="hljs-name">b</span></span></span><span>&gt;そして</span><span><span class="hljs-tag">&lt;<span class="hljs-name">i</span></span></span><span>&gt;イタリック</span><span><span class="hljs-tag">&lt;/<span class="hljs-name">i</span></span></span><span>&gt;同様に下線
</span></span>

<b>および<i>タグが削除されている間に保持されていることがわかります。

4。注意すべきこと

  1. コーディングの問題:ファイルに中国語がある場合は、適切なエンコード形式(UTF-8など)を使用するように注意してください。

  2. パフォーマンスの問題FGETSS()は、呼び出されるたびにタグフィルタリングを実行し、多数のファイルを処理すると、パフォーマンスがFGETS()よりわずかに低くなる場合があります。

  3. PHPバージョンFGETSS()はPHP 7.3の後に削除され、推奨されなくなったことに注意してください。別の方法は、sprip_tags()fgets()を使用することです。

     <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">"&lt;b&gt;&lt;i&gt;"</span></span><span>);
    </span></span>

5。概要

  • FGETSS()は、読み取りプロセス中にHTMLおよびPHPタグを自動的に削除できる便利なファイル読み取り機能です。

  • 一部のタグを保持する必要がある場合、3番目のパラメーターを介して指定できます。

  • PHPの新しいバージョンでは、 FGETS() + STRIP_TAGS()の組み合わせを使用して同じ機能を達成することをお勧めします。

この記事を通して、初心者はFGETSS()の使用法を理解し、実際の開発で柔軟に使用できると思います。