FGETSS関数は、ファイルから行を読み取り、HTMLおよびPHPタグを自動的にフィルターアウトするPHPの関数です。 FGETCSV関数に基づく改善です。 FGETCSVとは異なり、CSV形式のファイルのみを読み取ることができ、FGETSSは通常のファイルのコンテンツを読み取り、セキュリティを改善するために潜在的なコードマークを取り除くことができます。
<span class="fun">string fgetss(resource $ handle [、int $ length [、string $ abold_tags]])</span>
ハンドル:必須、ファイルのハンドルを入力します。
長さ:オプション、読み取り文字の最大長を指定すると、デフォルト値は1024です。
Aldoce_Tags:オプションは、保持するHTMLタグのリストを定義します。
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);
}
FOPEN関数は、読み取り専用モードでファイルを開きます。 whileループでは、fgetssはファイルコンテンツを行ごとに読み取ります。 Aldoce_Tagsパラメーターは指定されていないため、すべてのHTMLおよびPHPタグが削除され、純粋なテキストが出力されるようにします。
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エンティティによって変換され、潜在的なスクリプトインジェクションリスクを回避することを保証します。
フィルタリング時に特定の特定の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タグをフィルターしますが、それらを保持します。
ラベルは、部分的に保持された形式が必要なシナリオに適しています。
FGETSSは、PHPの非常に実用的なファイル読み取り機能です。ファイルを読み取るときにHTMLとPHPタグをフィルタリングでき、コードインジェクションとクロスサイトスクリプト攻撃を回避できます。 HTMLENTITIES関数と組み合わせて、データセキュリティを改善できます。同時に、Aldoct_Tagsパラメーターは、さまざまな開発ニーズに適した柔軟なタグ保持制御を提供します。