PHP中的流是什么呢_第1頁
PHP中的流是什么呢_第2頁
PHP中的流是什么呢_第3頁
PHP中的流是什么呢_第4頁
PHP中的流是什么呢_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、PHP中的流是什么呢PHP中的流是什么呢流(streams)是PHP4.3版本引入的一個特性,主要是為了統(tǒng)一文件、sockets以及其他類似資源的工作方法。PHP4.3距今已經(jīng)有很長時間了,但是很多程序員似乎都不能正確使用PHP中的流,當(dāng)然這也包括我。以前也在一些程序中遇到過流的使用,如php:/input,大家知道PHP中的流嗎?下面我們就給大家詳細(xì)介紹一下吧!概述流是由PHP提供的資源,可以供我們透明的使用,而且流是一個非常強大的工具。適當(dāng)?shù)脑诔绦蛑惺褂昧鳎梢詫⑽覀兊某绦驇У揭粋€新的高度。PHP手冊中對流的描述如下:復(fù)制代碼 代碼如下:Streams were introduced wi

2、th 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, an

3、d may be able to fseek() to an arbitrary locations within the stream.每一種流都實現(xiàn)了一個包裝器(wrapper),包裝器包含一些額外的代碼用來處理特殊的協(xié)議和編碼。PHP提供了一些內(nèi)置的包裝器,我們也可以很輕松的創(chuàng)建和注冊自定義的包裝器。我們甚至可以使用上下文(contexts)和過濾器來改變和增強包裝器。流基礎(chǔ)知識PHP中流的形式如::/。是包裝器的名字,的內(nèi)容取決于不同的包裝器語法。默認(rèn)的包裝器是file:/,也就是說每次我們訪問文件系統(tǒng)的時候都使用了流。例如,我們可以使用如下兩種方式來讀取文件:readfile(/pa

4、th/to/somefile.txt)和readfile(file:/path/to/somefile.txt),使用這兩種方式讀取文件,可以得到相同的結(jié)果。正如前面所說,PHP提供了一些內(nèi)置的包裝器、協(xié)議和過濾器。查看我們的.機器上安裝了哪些包裝器,可以使用如下幾個函數(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 (lengt

5、h=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 c

6、ompress.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)0 = string zlib.* (length=6)1 = string bzip2.* (lengt

7、h=7)2 = string convert.iconv.* (length=15)3 = string string.rot13 (length=12)4 = string string.toupper (length=14)5 = string string.tolower (length=14)6 = string string.strip_tags (length=17)7 = string convert.* (length=9)8 = string consumed (length=8)9 = string dechunk (length=7)10 = string mcrypt.

8、* (length=8)11 = string mdecrypt.* (length=10)另外,我們可以自定義或者使用第三方的流。php:/包裝器PHP有它自己的訪問輸入/輸出(I/O)流的包裝器。PHP有基本的php:/stdin,php:/stdout,php:/stderr包裝器對應(yīng)默認(rèn)的I/O資源。還有一個php:/input流,它是一個只讀的流,流內(nèi)容是post請求的數(shù)據(jù)。當(dāng)我們將數(shù)據(jù)放在一個post請求的body體內(nèi)用來請求一個遠(yuǎn)程服務(wù)的時候,這個流特別好用。因為php:/input是最常用到的流,所以這里列出一些知識點:復(fù)制代碼 代碼如下:1.php:/input可以讀取沒有處理過的POST數(shù)據(jù)。相較于$HTTP_RAW_POST_DATA而言,它給內(nèi)存帶來的壓力較小,并且不需要特殊的php.ini設(shè)置。php:/input不能用于enctype=multipart/form-data2.僅當(dāng)Content-Type為application/x-www-form-urlencoded且提交方法是POST方法時,$_POST數(shù)據(jù)與php:/input數(shù)據(jù)才是”一致”(打上引號,表示它們格式不一致,內(nèi)容一致)的。其它情況,它們都不一致3.php:/input讀取不

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論