PHP Conference Japan 2024

fgetss

(PHP 4, PHP 5, PHP 7)

fgetss從檔案指標取得一行並去除 HTML 標籤

警告

此函式自 PHP 7.3.0 起已被棄用,並自 PHP 8.0.0 起已被移除。強烈建議不要依賴此函式。

說明

fgetss(資源 $handle, int $length = ?, string $allowable_tags = ?): string

fgets() 相同,不同之處在於 fgetss() 會嘗試從讀取的文字中去除任何 NUL 位元組、HTML 和 PHP 標籤。此函式會在每次呼叫之間保留解析狀態,因此不等同於對 fgets() 的返回值呼叫 strip_tags()

參數

handle

檔案指標必須有效,並且必須指向一個已成功透過 fopen()fsockopen() 開啟(且尚未透過 fclose() 關閉)的檔案。

length

要擷取的資料長度。

allowable_tags

您可以使用選用的第三個參數來指定不應被去除的標籤。有關 allowable_tags 的詳細資訊,請參閱 strip_tags()

返回值

返回一個從 handle 指向的檔案中讀取的字串,最多 length - 1 個位元組,所有 HTML 和 PHP 程式碼都已被去除。

如果發生錯誤,則返回 false

範例

範例 #1 逐行讀取 PHP 檔案

<?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 在讀取由 Macintosh 電腦建立或在 Macintosh 電腦上讀取檔案時無法正確辨識行尾,啟用 auto_detect_line_endings 執行階段設定選項可能有助於解決此問題。

參見

新增筆記

使用者貢獻的筆記

此頁面沒有使用者貢獻的筆記。
To Top