首頁  >  文章  >  後端開發  >  php fgets()函數與fgetss()函數使用說明

php fgets()函數與fgetss()函數使用說明

怪我咯
怪我咯原創
2017-07-11 10:33:361843瀏覽

fgets — 從檔案指標讀取一行

說明

string fgets ( resource $handle [, int $length ] )

從檔案指標讀取一行。

參數

handle  檔案指標必須是有效的,必須指向由 fopen() 或 fsockopen() 成功開啟的檔案(並尚未由 fclose() 關閉)。

length   從 handle 指向的檔案中讀取一行並回傳長度最多為 length - 1 位元組的字串。碰到換行符號(包括在回傳值中)、EOF 或已經讀取了 length - 1 位元組後停止(看先碰到那一種情況)。如果沒有指定 length,則預設為 1K,或說 1024 位元組。

Note:

從 PHP 4.3 開始,忽略掉 length 則行的長度被假定為 1024,並且將繼續從流中讀取資料直到行結束。如果檔案中的大多數行都大於 8KB,則在腳本中指定最大行的長度在利用資源上更為有效。

傳回值

從指標 handle 所指向的檔案中讀取了 length - 1 位元組後傳回字串。 如果檔案指標中沒有更多的資料了則傳回 FALSE 。

錯誤發生時傳回 FALSE 。

 fgets()函數範例, 逐行讀取檔案,程式碼如下

<?php
$handle  = @ fopen ( "/tmp/inputfile.txt" ,  "r" );
if ( $handle ) {
    while (( $buffer  =  fgets ( $handle ,  4096 )) !==  false ) {
        echo  $buffer ;
    }
    if (! feof ( $handle )) {
        echo  "Error: unexpected fgets() fail\n" ;
    }
     fclose ( $handle );
}
?>

getss — 從檔案指標中讀取一行並過濾掉HTML 標記

說明

string fgetss ( resource $handle [, int $length [, string $allowable_tags ]] )

和fgets() 相同,只除了fgetss() 嘗試從讀取的文字中去掉任何HTML 和PHP 標記。

參數

handle   檔案指標必須是有效的,必須指向 fopen() 或 fsockopen() 成功開啟的檔案(並未由 fclose() 關閉)。

length   取回該長度的資料。

allowable_tags   可以用可選的第三個參數指定哪些標記不會被移除。

返回值

從 handle 指向的檔案中大讀取 length - 1 個位元組的字符,並過濾了所有的 HTML 和 PHP 程式碼。

getss ()函數範例,一行行讀取一個 PHP 文件,程式碼如下

<?php
$str  = <<<EOD
<html><body>
 <p>Welcome! Today is the <?php echo(date(&#39;jS&#39;)); ?> of <?= date(&#39;F&#39;); ?>.</p>
</body></html>
Text outside of the HTML block.
EOD;
file_put_contents ( &#39;sample.php&#39; ,  $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 fgets()函數與fgetss()函數使用說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn