現在の位置: ホーム> 最新記事一覧> fgetss "PHPの関数

fgetss "PHPの関数

gitbox 2025-06-06

1。はじめに

FGETSS関数は、ファイルから行を読み取り、HTMLおよびPHPタグを自動的にフィルターアウトするPHPの関数です。 FGETCSV関数に基づく改善です。 FGETCSVとは異なり、CSV形式のファイルのみを読み取ることができ、FGETSSは通常のファイルのコンテンツを読み取り、セキュリティを改善するために潜在的なコードマークを取り除くことができます。

1.1 FGETSS関数の構文

<span class="fun">string fgetss(resource $ handle [、int $ length [、string $ abold_tags]])</span>

1.2パラメーターの説明

ハンドル:必須、ファイルのハンドルを入力します。

長さ:オプション、読み取り文字の最大長を指定すると、デフォルト値は1024です。

Aldoce_Tags:オプションは、保持するHTMLタグのリストを定義します。

2。例

FGETSS関数を使用してファイルの行を読み取り、すべてのHTMLおよびPHPタグをフィルタリングする方法を示す基本的な例を次に示します。

 $handle = fopen("/tmp/inputfile.txt", "r");
if ($handle) {
  while (($buffer = fgetss($handle, 1024)) !== false) {
    echo $buffer;
  }
  if (!feof($handle)) {
    echo "ファイルエラーを読み取ります";
  }
  fclose($handle);
}

2.1コード解析

FOPEN関数は、読み取り専用モードでファイルを開きます。 whileループでは、fgetssはファイルコンテンツを行ごとに読み取ります。 Aldoce_Tagsパラメーターは指定されていないため、すべてのHTMLおよびPHPタグが削除され、純粋なテキストが出力されるようにします。

3。ユースケース

3.1 HTMLタグをフィルターし、エンティティをエスケープします

HTMLENTITIES関数と組み合わせて、HTMLタグはエンティティ文字に変換でき、XSSなどのセキュリティリスクをさらに防ぎます。例は次のとおりです。

 $filename = "input.txt";
$handle = fopen($filename, "r");
if ($handle) {
  while (($buffer = fgetss($handle, 1024)) !== false) {
    $buffer = htmlentities($buffer);
    echo $buffer;
  }
  if (!feof($handle)) {
    echo "ファイルエラーを読み取ります";
  }
  fclose($handle);
}

このコードの例は、読み取りのすべての行がHTMLエンティティによって変換され、潜在的なスクリプトインジェクションリスクを回避することを保証します。

3.2指定されたラベルフィルタリングを保持します

フィルタリング時に特定の特定のHTMLタグを保持する場合は、Aldoct_Tagsパラメーターを使用してそれを達成できます。例は次のとおりです。

 $filename = "input.txt";
$handle = fopen($filename, "r");
if ($handle) {
  while (($buffer = fgetss($handle, 1024, '<p><a>')) !== false) {
    echo $buffer;
  }
  if (!feof($handle)) {
    echo "ファイルエラーを読み取ります";
  }
  fclose($handle);
}

上記の例では、FGETSS関数はすべてのHTMLおよびPHPタグをフィルターしますが、それらを保持します。

ラベルは、部分的に保持された形式が必要なシナリオに適しています。

4。概要

FGETSSは、PHPの非常に実用的なファイル読み取り機能です。ファイルを読み取るときにHTMLとPHPタグをフィルタリングでき、コードインジェクションとクロスサイトスクリプト攻撃を回避できます。 HTMLENTITIES関数と組み合わせて、データセキュリティを改善できます。同時に、Aldoct_Tagsパラメーターは、さまざまな開発ニーズに適した柔軟なタグ保持制御を提供します。