php文件 ?
下面就是php文件等等的介紹,希望為您帶來(lái)幫助。 ?
1、PHP文件是什么? ?
PHP(Hypertext Preprocessor)超文本預(yù)處理器,是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語(yǔ)言,語(yǔ)言的風(fēng)格有類似于C語(yǔ)言,被廣泛的運(yùn)用于互聯(lián)網(wǎng)開(kāi)發(fā),學(xué)習(xí)起來(lái)比較容易! ?
PHP語(yǔ)法混合了 C、java、Perl 以及 PHP 自創(chuàng)的語(yǔ)法。(可以看php與java比較)php的執(zhí)行效率奇高;PHP還可以執(zhí)行編譯后代碼,編譯可以達(dá)到加密和優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快。php的功能極其強(qiáng)大,能夠兼容所有數(shù)據(jù)庫(kù),還可以用C、C++進(jìn)行程序的擴(kuò)展!目前互聯(lián)網(wǎng)很多優(yōu)秀的產(chǎn)品都是php的杰作,包括facebook,新浪,雅虎,搜狐,msn等等,全球500強(qiáng)中有394家運(yùn)用的都是php技術(shù),據(jù)統(tǒng)計(jì),全球70%以上的流量都是來(lái)自php語(yǔ)言! ?
2、如何打開(kāi)PHP文件? ?
如果你只是,想打開(kāi)看源碼,最簡(jiǎn)單的用記事本都o(jì)k了,Notepad++、phpedit、UltraEdit、Dreamwere、VIM編輯器等等都可以打開(kāi)。 ?
首先找到一個(gè)PHP文件。 ?
1)用記事本打開(kāi) ?
①鼠標(biāo)右擊php文件,在彈出來(lái)的列表中選擇“打開(kāi)(o)”。 ?
②在打開(kāi)的方式的選項(xiàng)中選擇“記事本”。 ?
③然后就可以在記事本中看到php的代碼了。 ?
2)用Notepad++打開(kāi) ?
①鼠標(biāo)php文件,在出現(xiàn)的列表中選擇“Notepad。 ?
②然后可以看到在Notepad++中打開(kāi)的php代碼,可以看到此時(shí)php代碼顯示不同顏色,這是Notepad++自帶的高顯亮。 ?
3)用UltraEdit打開(kāi) ?
用UltraEdit打開(kāi),可以看到代碼顯示的高顯亮又不一樣了,不同編輯器顯示的高顯亮不同,可以自己調(diào)節(jié)。 ?
3、怎么運(yùn)行PHP文件? ?
php語(yǔ)言是后臺(tái)腳本語(yǔ)言,不像html,js直接運(yùn)行,想運(yùn)行php文件,必須要有php環(huán)境,php環(huán)境安裝比較簡(jiǎn)單,網(wǎng)上也有很多教程。PHP是一門(mén)很優(yōu)秀的語(yǔ)言,建議大家可以去學(xué)習(xí)下。 ?
打開(kāi)php格式文件的方法
?
php文件打開(kāi)方式一:用記事本打開(kāi) ?
右擊.php文件,選擇記事本打開(kāi),就可以看到文件代碼啦! ?
php文件打開(kāi)方式二:用Dreamweaver打開(kāi) ?
Dreamweaver是網(wǎng)頁(yè)編輯器,比較流行的網(wǎng)站開(kāi)發(fā)工具,你可以直接把文件拖進(jìn)去就可以打開(kāi)php文件了 ?
php文件打開(kāi)方式三:Notepad++工具打開(kāi) ?
也是代碼編輯器,選擇文件打開(kāi)就行 ?
php文件打開(kāi)方式四:SublimeText工具打開(kāi) ?
和上面方法一樣,直接選擇文件打開(kāi)就行 ?
除了記事本,其它代碼編輯器工具都可以去php中文網(wǎng)php開(kāi)發(fā)工具下載 ?
PHP文件緩存的性能測(cè)試 ?
常用緩存方式: ?
*種,把需要緩存的數(shù)據(jù)進(jìn)行處理,形成PHP可以直接執(zhí)行的文件。在需要緩存數(shù)據(jù)的時(shí)候,通過(guò)include方式引入,并使用。 ?
第二種,把需要的數(shù)據(jù)通過(guò)serialize函數(shù)序列化后直接保存到文件。在需要使用緩存數(shù)據(jù)的時(shí)候,通過(guò)反序列化讀入文件內(nèi)容并復(fù)制給需要的變量,然后使用。 ?
測(cè)試結(jié)果: ?
通過(guò)測(cè)試我們發(fā)現(xiàn),第二種也就是serialize緩存數(shù)據(jù)的方式更加高效。(數(shù)據(jù)略去,*提供了文章地址下載,大家可以自行測(cè)試) ?
?
原因分析: ?
include方式讀取緩存的時(shí)候,PHP需要執(zhí)行幾個(gè)過(guò)程 ?
1.讀取文件 ?
2.解析所Include的文件 ?
3.執(zhí)行,給變量賦值 ?
而serialize序列化方式讀取緩存的時(shí)候: ?
1.讀取數(shù)據(jù) ?
2.反序列化數(shù)據(jù)內(nèi)容 ?
3.給變量賦值 ?
從以上內(nèi)容對(duì)比的話,可能是由于解析PHP文件內(nèi)的數(shù)組需要的時(shí)間超過(guò)unserialize反序列化數(shù)組的時(shí)間。如果你有興趣可以查看《PHP filesystem相關(guān)函數(shù)和include require的性能效率研究》:http://www.ccvita.com/163.html ?
測(cè)試文件代碼: ?
CacheTest_IncludeFile.php ?
$t1 = gettimeofday(); ?
for ($i = 0; $i < 10000; $i++){ ?
include("CacheTest_IncludeData.php"); ?
} ?
$t2 = gettimeofday(); ?
echo ($t2['sec'] - $t1['sec']) * 1000 + ($t2['usec'] - $t1['usec']) / 1000 . "n"; ?
CacheTest_SerializeFile.php ?
function read_cache($filename) { ?
if(@$fp = fopen($filename, 'r')) { ?
@$data = fread($fp,filesize($cachefile)); ?
fclose($fp); ?
} ?
return $s; ?
} ?
$t1 = gettimeofday(); ?
for ($i = 0; $i < 10000; $i++){ ?
$x = read_cache("CacheTest_SerializeData.php"); ?
$x_r = unserialize($x); ?
} ?
$t2 = gettimeofday(); ?
echo ($t2['sec'] - $t1['sec']) * 1000 + ($t2['usec'] - $t1['usec']) / 1000 . "n"; ?
總結(jié)分析: ?
*種,include緩存的方式 ?
優(yōu)點(diǎn):增加數(shù)據(jù)的保密性,和安全性,緩存內(nèi)容不會(huì)被外界發(fā)現(xiàn)。 ?
缺點(diǎn):速度相對(duì)較慢。 ?
用途:保存禁止系統(tǒng)外部得知的數(shù)據(jù),比如web系統(tǒng)的設(shè)置,甚至MySQL信息等的保存 ?
第二種,serialize序列化緩存的方式 ?
優(yōu)點(diǎn):速度較快。 ?
缺點(diǎn):緩存系統(tǒng)文件路徑一旦曝光,緩存內(nèi)容會(huì)泄露。 ?
用途:緩存*文章,相關(guān)文章等不擔(dān)心外部得知的數(shù)據(jù)的時(shí)候,可以使用這種方式。 ?
PHP文件操作的簡(jiǎn)單介紹 ?
1. 打開(kāi)文件:fopen("文件名","模式"); ?
模式參數(shù): ?
r:只讀,將文件指針指向文件頭。 ?
r+:讀/寫(xiě),將文件指針指向文件頭。 ?
w:只寫(xiě),打開(kāi)并清空文件的內(nèi)容。如果文件不存在,則創(chuàng)建文件。 ?
w+:讀/寫(xiě),打開(kāi)并清空文件的內(nèi)容。如果文件不存在,則創(chuàng)建文件。 ?
a:追加,打開(kāi)并向文件的末端進(jìn)行寫(xiě)操作。如果文件不存在,則創(chuàng)建新文件。 ?
a+:讀/追加,通過(guò)向文件末端寫(xiě)內(nèi)容,來(lái)保持文件內(nèi)容。 ?
2. 關(guān)閉文件:fclose(); ?
使用文件完畢,要顯式的告訴PHP已經(jīng)使用完文件,例如: ?
$file=fopen("test.txt","r"); //關(guān)閉一個(gè)已打開(kāi)的文件指針 ?
//some code be executed ?
fclose=($file); ?
3. 檢測(cè)是否已達(dá)到文件的末端:feof(); ?
例如:if(feof($file)){ echo "end of file";} ?
4. 逐行讀取文件:fgets(); ?
例如: ?
$file=fopen("test.txt","r"); ?
while(!feof($file)){ ?
echo fgets($file)."< br/>"; ?
} ?
fclose($file); ?
5. 逐字符讀取文件:fgetc() ?
6. 讀取任意二進(jìn)制數(shù)據(jù):fread() ?
7. 判斷文件讀取的狀態(tài) ?
每個(gè)文件句柄都有一個(gè)文件指針,根據(jù)fopen函數(shù)的mode參數(shù),文件指針最初位于文件的開(kāi)頭,或者文件的末尾。feof()可以判斷文件是否已經(jīng)到末尾;filesize()函數(shù)返回文件的大小。 ?