《PHP編程:PHP利用APC模塊實現(xiàn)文件上傳進(jìn)度條的方法》要點:
本文介紹了PHP編程:PHP利用APC模塊實現(xiàn)文件上傳進(jìn)度條的方法,希望對您有用。如果有疑問,可以聯(lián)系我們。
PHP實戰(zhàn)本文實例講述了PHP利用APC模塊實現(xiàn)文件上傳進(jìn)度條的辦法.分享給大家供大家參考.具體分析如下:
PHP實戰(zhàn)以前的php5.2之前的版本是不能可使用APC模塊的,因為之前的壓根就沒有這個APC模塊,如果想使用APC模塊實現(xiàn)上傳進(jìn)度條我們必須是php5.2或更高版本.
PHP實戰(zhàn)從5.2開始APC加入了一個叫APC_UPLOAD_PROGRESS的東東,辦理了困擾大家已久的進(jìn)度條問題.并且它把原來的上傳時把臨時文件全部緩存到內(nèi)存改成了當(dāng)臨時文件達(dá)到設(shè)定值時就自動保存到硬盤,有效地改善了內(nèi)存利用狀況.
PHP實戰(zhàn)它的作用原理是在上傳時候賦予每個上傳一個唯一的ID,當(dāng) PHP 腳本收到一個上傳文件時,解釋程序?qū)⒆詣訖z查 $_POST數(shù)組中名為 APC_UPLOAD_PROGRESS 的暗藏字段,它將成為緩存變量,存儲關(guān)于上傳的信息,這樣腳本就可以通過上傳的ID來訪問上傳文件的狀態(tài)信息.
PHP實戰(zhàn)APC是Alternative PHP Cache的簡稱,是 PHP 的一個免費公開的優(yōu)化代碼緩存.它用來提供免費,公開并且強健的架構(gòu)來緩存和優(yōu)化 PHP 的中間代碼.
PHP實戰(zhàn)APC模塊的參數(shù)配置,代碼如下:
PHP實戰(zhàn)XML/HTML代碼如下:
PHP實戰(zhàn)下面是處理Ajax的腳本,我用了Jquery框架,json傳遞消息.
PHP實戰(zhàn)JavaScript代碼如下:
PHP實戰(zhàn)apc.enabled? 布爾型
PHP實戰(zhàn)apc.enabled 可以被設(shè)成 0 來禁用 APC,這主要是有用的,當(dāng) APC 被靜態(tài)編譯入 PHP 時,因為沒有其它辦法來禁用它,當(dāng)編譯為 DSO 的時候,可以將 php.ini 中的 extension 行注釋掉.
PHP實戰(zhàn)apc.shm_segments? 整型
PHP實戰(zhàn)對編譯緩存分配共享內(nèi)存塊的數(shù)量,如果APC用光了共享內(nèi)存,而且你已經(jīng)設(shè)置 apc.shm_size為系統(tǒng)允許的最大值的情況下,你可以試著去提高這個參數(shù)的值.
PHP實戰(zhàn)apc.shm_size? 整型
PHP實戰(zhàn)每個共享內(nèi)存塊的大小是以MB為單位的.在默認(rèn)情況下,一些系統(tǒng)(包括大多數(shù)BSD變種系統(tǒng))的共享內(nèi)存塊的大小限制的很低.
PHP實戰(zhàn)apc.optimization? 整型
PHP實戰(zhàn)優(yōu)化等級.設(shè)為0則禁用優(yōu)化,越高的值使用越強有力的優(yōu)化.期待有適度的速度上的改進(jìn).這個還是實驗性質(zhì)的.
PHP實戰(zhàn)apc.num_files_hint? 整型
PHP實戰(zhàn)對在你的Web服務(wù)器上被包含和哀求的不同的源文件的數(shù)量的提示.如果你無法確定,設(shè)置為0或者省略;這個設(shè)置主要可能用于有成千的源文件的站點.
PHP實戰(zhàn)apc.ttl? 整型
PHP實戰(zhàn)當(dāng)一個緩存條目在緩存區(qū)的位置被另一個條目需要時,我們需要考慮的是這個緩存條目在緩存區(qū)的位置被允許空閑的秒數(shù).將這個參數(shù)設(shè)置為0意味著你的緩存可能充滿不新鮮的條目,同時導(dǎo)致新的條目無法被緩存.
PHP實戰(zhàn)apc.gc_ttl? 整型
PHP實戰(zhàn)緩存條目在垃圾收集列表中存活的秒數(shù).這個值提供了出錯保護(hù)在執(zhí)行一個緩存源文件,而同時服務(wù)器進(jìn)程死了的事件中.如果那個源文件被修改,內(nèi)存分配給舊版本的緩存條目將不會被回收,直到這個參數(shù)設(shè)定的TTL值到的時候.設(shè)置為0就是禁止這個特性.
PHP實戰(zhàn)apc.cache_by_default? 布爾型
PHP實戰(zhàn)默認(rèn)為On,但可以被設(shè)置為Off并和以加號開頭的apc.filters配合使用,文件僅僅在匹配過濾器時才被緩存.
PHP實戰(zhàn)apc.filters? 字符串
PHP實戰(zhàn)一個以逗號分割的POSIX擴(kuò)展正則表達(dá)式的列表.如果任何模式匹配源文件名,這個文件將不會被緩存.注意用來匹配的文件名是傳遞給 include/require 的文件名,而不是絕對路徑.如果正則表達(dá)式的第一個字符是 + ,則這個表達(dá)式就意味著任何匹配表達(dá)式的文件將會被緩存,如果第一個字符是 - 則任何匹配都不會被緩存. - 是默認(rèn)值,所以可以被省略.
PHP實戰(zhàn)apc.mmap_file_mask? 字符串
PHP實戰(zhàn)apc.slam_defense? 整型
PHP實戰(zhàn)在非常繁忙的服務(wù)器上,無論你啟動服務(wù)還是修改文件,你都會導(dǎo)致一種多進(jìn)程都試圖在同一個時間緩存同一個文件的競爭.這個選項設(shè)置了進(jìn)程跳過試圖去緩存一個未被緩存的文件的百分比.或者可以把這個想象成一個單獨進(jìn)程跳過緩存的機(jī)率.例如,設(shè)置apc.slam_defense為75就意味著進(jìn)程有75%的機(jī)率不去緩存未被緩存的文件.所以,設(shè)置的越高,越能減少緩存的碰撞機(jī)率.設(shè)置為0則禁用這個特性.
PHP實戰(zhàn)apc.file_update_protection? 整型
PHP實戰(zhàn)當(dāng)你在一個運行著的服務(wù)器上修改文件時,你應(yīng)該執(zhí)行原子操作.也就是,先寫一個臨時文件,當(dāng)寫完后再重命名(mv)這個文件到它的最終位置.許多文本編輯器,cp,tar和其他一些類似程序都不是這樣操作的.這就意味著有機(jī)會去拜訪和(緩存)文件,當(dāng)這個文件還在被寫的情況下.apc.file_update_protection的設(shè)置使得緩存標(biāo)記新文件的延遲.默認(rèn)值是2,意味著如果發(fā)現(xiàn)文件的修改時間距離拜訪時間不到2秒,文件將不會被緩存.拜訪寫到一半的文件的不幸用戶將會看到離奇的情況,但至少這種情況不是持續(xù)的.如果你確信你經(jīng)常使用原子操作來更新你的文件,你可以關(guān)閉這個保護(hù)通過設(shè)置這個參數(shù)為0.如果你的系統(tǒng)充滿io操作,并導(dǎo)致更新程序花費超過2秒,你可能需要去增大這個值.
PHP實戰(zhàn)apc.enable-cli? 整型
PHP實戰(zhàn)大多是為了測試和調(diào)試,為CLI版本的PHP開啟動APC功能,一般來說,你將不會想到為每一個 CLI哀求創(chuàng)建,移植和放棄APC的緩存,但對于各種測試情況,這是很容易的為了CLI版本開啟APC.
PHP實戰(zhàn)希望本文所述對大家的php程序設(shè)計有所贊助.
《PHP編程:PHP利用APC模塊實現(xiàn)文件上傳進(jìn)度條的方法》是否對您有啟發(fā),歡迎查看更多與《PHP編程:PHP利用APC模塊實現(xiàn)文件上傳進(jìn)度條的方法》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/12518.html