개요
fgetss() 함수는 파일 포인터가 가리키는 파일에서 한 줄을 읽어 들이면서, 문자열에 포함된 모든 HTML 태그와 PHP 코드를 제거하는 함수입니다. 반환되는 문자열은 최대 length - 1바이트까지이며, 오류가 발생하면 FALSE를 반환합니다.
참고: fgetss() 함수는 PHP 7.3.0부터 사용이 권장되지 않으며(deprecated), PHP 8.0.0에서 완전히 제거되었습니다. 최신 PHP 환경에서는 fgets()로 줄을 읽은 후 strip_tags()로 태그를 제거하는 방식으로 대체하는 것이 좋습니다.
문법
fgetss(file_path, length, tags)
매개변수
file_pointer − 유효한 파일 포인터여야 하며, fopen() 또는 fsockopen()으로 성공적으로 연 파일을 가리켜야 합니다(아직 fclose()로 닫히지 않은 상태).
length − 한 번에 읽어 올 데이터의 길이입니다.
tags − 제거하지 않고 그대로 유지하고 싶은 태그를 지정합니다.
반환값
fgetss() 함수는 파일 포인터가 가리키는 파일에서 최대 length - 1바이트만큼 읽어 온 문자열을 반환하며, 이때 모든 HTML과 PHP 코드는 제거됩니다. 오류가 발생하면 FALSE를 반환합니다.
설명을 위해 "new.html" 파일에 다음과 같은 내용이 저장되어 있다고 가정해 보겠습니다.
<p><strong>Asia</strong> is a <em>continent</em>.</p>
예제 1: 기본 사용법
<?php
$file_pointer = fopen("new.html", "rw");
echo fgetss($file_pointer);
fclose($file_pointer);
?>
아래는 실행 결과입니다. 유지할 태그를 지정하는 세 번째 매개변수를 넘기지 않았기 때문에, 모든 HTML 태그가 제거된 순수 텍스트만 출력됩니다.
출력
Asia is a continent.
예제 2: 특정 태그 유지하기
이번에는 같은 파일에 대해 length와 tags 매개변수를 함께 전달하여, 일부 HTML 태그가 제거되지 않도록 처리해 보겠습니다.
<?php
$file_pointer = @fopen("new.html", "r");
if ($file_pointer) {
while (!feof($file_pointer)) {
$buffer = fgetss($file_pointer, 1024, "<p>,<strong>,<em>");
echo $buffer;
}
fclose($file_pointer);
}
?>
위 예제에서는 세 번째 매개변수로 <p>, <strong>, <em> 태그를 지정했으므로, 해당 태그들은 제거되지 않고 그대로 유지됩니다. 따라서 브라우저에서 실행하면 'Asia'는 굵은 글씨로, 'continent'는 기울임꼴로 강조되어 화면에 표시됩니다.
출력
Asia is a continent.