HTMLタグを削除し、ファイルから1行ずつ読み込む - fgetss()
当ページのリンクには広告が含まれています。
プログラミング言語PHPで、HTMLタグを取り除きながら(削除しながら)、ファイルから1行ずつ読み込む関数 fgetss()を紹介します。
fgetss関数
string fgetss ( resource $handle [, int $length [, string $allowable_tags ]] )
HTMLタグを取り除きながら、ファイルから1行ずつ読み込みます。
引数 $handle fopen関数で正常にオープンされた、有効なファイルポインタを指定します。 $length 取得するデータの長さを指定します。 $allowable_tags 取り除かないHTMLタグを指定します。
返り値
HTMLタグが取り除かれたファイルデータを文字列で返します。
サンプルコード
指定したHTMLファイル(test.html)からファイルを読み込み、HTMLタグを削除するサンプルコードです。
fgetss( ファイルポインタ )
<?php
/* 読み込むHTMLファイルを作成 */
$str = <<<EOD
<html><body>
<p>Hello!</p>
<p><b>PHP</b></p>
</body></html>
EOD;
file_put_contents('test.html', $str);
/* ファイルポインタをオープン */
$file = fopen("test.html", "r");
/* ファイルを1行ずつ配列へ */
if( $file ){
while( !feof($file) ){
echo fgetss( $file );
}
}
/* ファイルポインタをクローズ */
fclose($file);
?>
実行結果です。読み込んだファイルからHTMLタグが削除され、その他の部分が文字列として返されています。
Hello! PHP
サンプルコード - 取り除かないHTMLタグを指定
指定したファイル(test.html)からファイルを読み込み、指定した取り除かないHTMLタグ以外のHTMLタグを削除するサンプルコードです。
fgetss( ファイルポインタ, データの長さを指定, 取り除かないHTMLタグ )
<?php
/* 読み込むHTMLファイルを作成 */
$str = <<<EOD
<html><body>
<p>Hello!</p>
<p><b>PHP</b></p>
</body></html>
EOD;
file_put_contents('test.html', $str);
/* ファイルポインタをオープン */
$file = fopen("test.html", "r");
/* ファイルを1行ずつ配列へ */
if( $file ){
while( !feof($file) ){
echo fgetss( $file, 4096, "<p>,<b>" );
}
}
/* ファイルポインタをクローズ */
fclose($file);
?>
実行結果です。指定したpタグ、bタグ以外のHTMLタグが取り除かれています。
<p>Hello!</p> <p><b>PHP</b></p>