- 相關(guān)推薦
關(guān)于PHP中的流介紹
PHP是一種 HTML 內(nèi)嵌式的語言,是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語言,語言的風(fēng)格有類似于C語言,被廣泛地運(yùn)用。
概述
流(streams)是PHP4.3版本引入的一個特性,主要是為了統(tǒng)一文件、sockets以及其他類似資源的工作方法。PHP4.3距今已經(jīng)有很長時間了,但是很多程序員似乎都不能正確使用PHP中的流,當(dāng)然這也包括我。以前也在一些程序中遇到過流的使用,如php://input,但是一直沒機(jī)會整理,今天就把這部分知識整理下。
流是由PHP提供的資源,可以供我們透明的使用,而且流是一個非常強(qiáng)大的工具。適當(dāng)?shù)脑诔绦蛑惺褂昧,可以將我們的程序帶到一個新的高度。
PHP手冊中對流的描述如下:
復(fù)制代碼 代碼如下:
Streams were introduced with PHP 4.3.0 as a way of generalizing file, network, data compression, and other operations which share a common set of functions and uses. In its simplest definition, a stream is a resource object which exhibits streamable behavior. That is, it can be read from or written to in a linear fashion, and may be able to fseek() to an arbitrary locations within the stream.
每一種流都實(shí)現(xiàn)了一個包裝器(wrapper),包裝器包含一些額外的代碼用來處理特殊的協(xié)議和編碼。PHP提供了一些內(nèi)置的包裝器,我們也可以很輕松的創(chuàng)建和注冊自定義的包裝器。我們甚至可以使用上下文(contexts)和過濾器來改變和增強(qiáng)包裝器。
流基礎(chǔ)知識
PHP中流的形式如:://。是包裝器的名字,的內(nèi)容取決于不同的包裝器語法。
默認(rèn)的包裝器是file://,也就是說每次我們訪問文件系統(tǒng)的時候都使用了流。例如,我們可以使用如下兩種方式來讀取文件:readfile(/path/to/somefile.txt)和readfile(file:///path/to/somefile.txt),使用這兩種方式讀取文件,可以得到相同的結(jié)果。
正如前面所說,PHP提供了一些內(nèi)置的包裝器、協(xié)議和過濾器。查看我們的機(jī)器上安裝了哪些包裝器,可以使用如下幾個函數(shù):
復(fù)制代碼 代碼如下:
var_dump(stream_get_transports());
var_dump(stream_get_wrappers());
var_dump(stream_get_filters());
>
我本地的環(huán)境輸出內(nèi)容如下:
復(fù)制代碼 代碼如下:
array (size=8)
0 => string tcp (length=3)
1 => string udp (length=3)
2 => string unix (length=4)
3 => string udg (length=3)
4 => string ssl (length=3)
5 => string sslv3 (length=5)
6 => string sslv2 (length=5)
7 => string tls (length=3)
array (size=12)
0 => string https (length=5)
1 => string ftps (length=4)
2 => string compress.zlib (length=13)
3 => string compress.bzip2 (length=14)
4 => string php (length=3)
5 => string file (length=4)
6 => string glob (length=4)
7 => string data (length=4)
8 => string http (length=4)
9 => string ftp (length=3)
10 => string phar (length=4)
11 => string zip (length=3)
array (size=12)
【PHP中的流介紹】相關(guān)文章:
精選php面試自我介紹范文07-16
php程序員自我介紹11-22
在PHP7中不要做的10件事09-06
php實(shí)習(xí)心得12-01
php工作總結(jié)11-11
php是什么格式?01-14
PHP Socket編程過程02-09
php開發(fā)主管的職責(zé)05-15
php開發(fā)主管的工作職責(zé)09-29