array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.fgetss.php', 1 => 'fgetss', ), 'up' => array ( 0 => 'ref.filesystem.php', 1 => 'ファイルシステム 関数', ), 'prev' => array ( 0 => 'function.fgets.php', 1 => 'fgets', ), 'next' => array ( 0 => 'function.file-exists.php', 1 => 'file_exists', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/filesystem/functions/fgetss.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7)
fgetss — ファイルポインタから 1 行取り出し、HTML タグを取り除く
この関数は PHP 7.3.0 で 非推奨 になり、PHP 8.0.0 で 削除 されました。この関数に頼らないことを強く推奨します。
fgets() と同じですが、 fgetss() は読み込んだテキストから NUL バイト や HTML および PHP のタグを取り除こうとすることが異なります。 この関数は、ある呼び出しから別の呼び出しの間のパースの状態を保持します。 したがって、これは fgets() の戻り値に対して strip_tags() 関数を呼び出すのと同じではありません。
handle
ファイルポインタは、有効なファイルポインタである必要があり、 fopen() または fsockopen() で正常にオープンされた (そしてまだ fclose() でクローズされていない) ファイルを指している必要があります。
length
取得したいデータの長さ。
allowable_tags
オプションの 3 番目の引数を使用して、
取り除く必要がないタグを指定することができます。
allowable_tags
について詳しくは strip_tags() を参照ください。
handle
で指定したファイルポインタから最大
length
- 1 バイト読み出し、
HTML や PHP コードを取り除いた文字列を返します。
エラーが発生した場合は false
を返します。
例1 PHP ファイルの 1 行ごとの読み込み
<?php
$str = <<<EOD
<html><body>
<p>Welcome! Today is the <?php echo(date('jS')); ?> of <?= date('F'); ?>.</p>
</body></html>
Text outside of the HTML block.
EOD;
file_put_contents('sample.php', $str);
$handle = @fopen("sample.php", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgetss($handle, 4096);
echo $buffer;
}
fclose($handle);
}
?>
上の例の出力は、 たとえば以下のようになります。
Welcome! Today is the of . Text outside of the HTML block.
注意: マッキントッシュコンピュータ上で作成されたファイルを読み込む際に、
PHP
が行末を認識できないという問題が発生した場合、 実行時の設定オプションauto_detect_line_endings を有効にする必要が生じるかもしれません。