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

下載本文檔

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

文檔簡(jiǎn)介

1、PHP中的流是什么呢PHP中的流是什么呢流(streams)是PHP4.3版本引入的一個(gè)特性,主要是為了統(tǒng)一文件、sockets以及其他類似資源的工作方法。PHP4.3距今已經(jīng)有很長(zhǎng)時(shí)間了,但是很多程序員似乎都不能正確使用PHP中的流,當(dāng)然這也包括我。以前也在一些程序中遇到過(guò)流的使用,如php:/input,大家知道PHP中的流嗎?下面我們就給大家詳細(xì)介紹一下吧!概述流是由PHP提供的資源,可以供我們透明的使用,而且流是一個(gè)非常強(qiáng)大的工具。適當(dāng)?shù)脑诔绦蛑惺褂昧鳎梢詫⑽覀兊某绦驇У揭粋€(gè)新的高度。PHP手冊(cè)中對(duì)流的描述如下:復(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.每一種流都實(shí)現(xiàn)了一個(gè)包裝器(wrapper),包裝器包含一些額外的代碼用來(lái)處理特殊的協(xié)議和編碼。PHP提供了一些內(nèi)置的包裝器,我們也可以很輕松的創(chuàng)建和注冊(cè)自定義的包裝器。我們甚至可以使用上下文(contexts)和過(guò)濾器來(lái)改變和增強(qiáng)包裝器。流基礎(chǔ)知識(shí)PHP中流的形式如::/。是包裝器的名字,的內(nèi)容取決于不同的包裝器語(yǔ)法。默認(rèn)的包裝器是file:/,也就是說(shuō)每次我們?cè)L問(wèn)文件系統(tǒng)的時(shí)候都使用了流。例如,我們可以使用如下兩種方式來(lái)讀取文件:readfile(/pa

4、th/to/somefile.txt)和readfile(file:/path/to/somefile.txt),使用這兩種方式讀取文件,可以得到相同的結(jié)果。正如前面所說(shuō),PHP提供了一些內(nèi)置的包裝器、協(xié)議和過(guò)濾器。查看我們的.機(jī)器上安裝了哪些包裝器,可以使用如下幾個(gè)函數(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有它自己的訪問(wèn)輸入/輸出(I/O)流的包裝器。PHP有基本的php:/stdin,php:/stdout,php:/stderr包裝器對(duì)應(yīng)默認(rèn)的I/O資源。還有一個(gè)php:/input流,它是一個(gè)只讀的流,流內(nèi)容是post請(qǐng)求的數(shù)據(jù)。當(dāng)我們將數(shù)據(jù)放在一個(gè)post請(qǐng)求的body體內(nèi)用來(lái)請(qǐng)求一個(gè)遠(yuǎn)程服務(wù)的時(shí)候,這個(gè)流特別好用。因?yàn)閜hp:/input是最常用到的流,所以這里列出一些知識(shí)點(diǎn):復(fù)制代碼 代碼如下:1.php:/input可以讀取沒有處理過(guò)的POST數(shù)據(jù)。相較于$HTTP_RAW_POST_DATA而言,它給內(nèi)存帶來(lái)的壓力較小,并且不需要特殊的php.ini設(shè)置。php:/input不能用于enctype=multipart/form-data2.僅當(dāng)Content-Type為application/x-www-form-urlencoded且提交方法是POST方法時(shí),$_POST數(shù)據(jù)與php:/input數(shù)據(jù)才是”一致”(打上引號(hào),表示它們格式不一致,內(nèi)容一致)的。其它情況,它們都不一致3.php:/input讀取不

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論