stream_get_meta_data

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_get_meta_data從封裝協(xié)議文件指針中取得報(bào)頭/元數(shù)據(jù)

說(shuō)明

stream_get_meta_data(int $fp): array

返回現(xiàn)有 stream 的信息??梢允侨魏瓮ㄟ^(guò) fopen()fsockopen()pfsockopen() 建立的流。返回的數(shù)組包含以下項(xiàng)目:

  • timed_out (bool) - 如果在上次調(diào)用 fread() 或者 fgets() 中等待數(shù)據(jù)時(shí)流超時(shí)了則為 true

  • blocked (bool) - 如果流處于阻塞 IO 模式時(shí)為 true。參見(jiàn) stream_set_blocking()。

  • eof (bool) - 如果流到達(dá)文件末尾時(shí)為 true。注意對(duì)于 socket 流甚至當(dāng) unread_bytes 為非零值時(shí)也可以為 true。要測(cè)定是否有更多數(shù)據(jù)可讀,用 feof() 替代讀取本項(xiàng)目的值。

  • unread_bytes (int) - 當(dāng)前在 PHP 自己的內(nèi)部緩沖區(qū)中的字節(jié)數(shù)。

    注意: 不要在腳本中使用此值。

以下項(xiàng)目是 PHP 4.3 新加的:

  • stream_type (string) - 一個(gè)描述流底層實(shí)現(xiàn)的標(biāo)注。

  • wrapper_type (string) - 一個(gè)描述流的分層協(xié)議封裝實(shí)現(xiàn)的標(biāo)注。更多關(guān)于封裝協(xié)議的信息見(jiàn) 支持的協(xié)議和封裝協(xié)議。

  • wrapper_data (mixed) - 當(dāng)前流附加的封裝協(xié)議數(shù)據(jù)。更多封裝協(xié)議及其數(shù)據(jù)的信息見(jiàn) 支持的協(xié)議和封裝協(xié)議。

  • filters (array) - 包含有被疊加在當(dāng)前流的任何過(guò)濾器名的數(shù)組。過(guò)濾器的文檔見(jiàn)附錄中的可用過(guò)濾器列表

注意:

本函數(shù)是 PHP 4.3 引進(jìn)的,在此版本之前,可以用 socket_get_status() 來(lái)取得前四個(gè)項(xiàng)目并且僅能用于基于 socket 的流。

在 PHP 4.3 及以后版本中,socket_get_status() 是本函數(shù)的別名。

注意: 本函數(shù)不能作用于通過(guò) Socket 擴(kuò)展庫(kù)創(chuàng)建的流。

以下項(xiàng)目為 PHP 5.0 新加:

  • mode (string) - 對(duì)當(dāng)前流所要求的訪問(wèn)類型(見(jiàn) fopen() 中的表格 1)。

  • seekable (bool) - 是否可以在當(dāng)前流中定位。

  • uri (string) - 與當(dāng)前流關(guān)聯(lián)的 URI 或文件名。