PHP文件的擴(kuò)展名
建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁(yè)設(shè)計(jì)師等,應(yīng)用各種網(wǎng)絡(luò)程序開(kāi)發(fā)技術(shù)和網(wǎng)頁(yè)設(shè)計(jì)技術(shù)配合操作的協(xié)同工作。創(chuàng)新互聯(lián)專業(yè)提供網(wǎng)站制作、網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站制作(企業(yè)站、成都響應(yīng)式網(wǎng)站建設(shè)公司、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗(yàn)的提升,我們力求做到極致!
PHP 是一種易于學(xué)習(xí)和使用的服務(wù)器端腳本語(yǔ)言。只需要很少的編程知識(shí)你就能使用PHP 建立一個(gè)真正交互的WEB 站點(diǎn)。本教程并不想讓你完全了解這種語(yǔ)言,只是能使你盡快加入開(kāi)發(fā)動(dòng)態(tài)web站點(diǎn)的行列。我假定你有一些HTML(或者HTML編輯器)的基本知識(shí)和一些編程思想。
簡(jiǎn)介
PHP 是能讓你生成動(dòng)態(tài)網(wǎng)頁(yè)的工具之一。PHP 代表:超文本預(yù)處理器(PHP:Hypertext Preprocessor)。PHP 是完全免費(fèi)的,不用花錢,你可以從PHP 官方站點(diǎn)()自由下載。PHP 遵守GNU 公共許可(GPL),在這一許可下誕生了許多流行的軟件諸如Linux和Emacs。你可以不受限制的獲得源碼,甚至可以從中加進(jìn)你自己需要的特色。PHP 在大多數(shù)Unix 平臺(tái),GUN/Linux和微軟Windows平臺(tái)上均可以運(yùn)行。怎樣在Windows環(huán)境的PC 機(jī)器或Unix機(jī)器上安裝PHP 的資料可以在PHP 官方站點(diǎn)上找到,也可以查閱網(wǎng)頁(yè)陶吧的“PHP 安裝全攻備”專題文章。安裝過(guò)程很簡(jiǎn)單。
如果你的機(jī)器解決了2000問(wèn)題,那么PHP 也一樣沒(méi)有千年蟲問(wèn)題!
歷史
三年前,Rasmus Lerdorf為了創(chuàng)建他的在線簡(jiǎn)歷而創(chuàng)造了"個(gè)人主頁(yè)工具"(Personal Home Page Tools)。這是一種非常簡(jiǎn)單的語(yǔ)言。其后越來(lái)越多的人們注意到了這種語(yǔ)言并對(duì)其擴(kuò)展提出了各種建議。在許多人的無(wú)私奉獻(xiàn)下以及這種語(yǔ)言本身的源代碼自由性質(zhì),它演變成為一種特點(diǎn)豐富的語(yǔ)言,而且現(xiàn)在還在成長(zhǎng)中。
PHP 雖然很容易學(xué)習(xí),但是速度上比mod_perl(植入web服務(wù)器的perl模塊)慢?,F(xiàn)在有了可以與mod_perl 速度想媲美的被稱作Zend 的新引擎,而PHP4 就可以充分利用這個(gè)引擎。現(xiàn)在,PHP4 正式版已經(jīng)發(fā)布,大家可以到php 的官方站點(diǎn)上去下載。Andy Gutmans 和Zeev Suraki 是Zend 的主要作者??梢匀end 站點(diǎn)()了解更多。
PHP 的應(yīng)用在個(gè)人性質(zhì)的web工程中增長(zhǎng)顯著。根據(jù)Netcraft在1999 年10月的報(bào)告,有931122個(gè)域和321128 個(gè)IP 地址利用PHP 技術(shù)。
PHP 的先進(jìn)之處
應(yīng)用PHP 有許多好處。當(dāng)然已知的不利之處在于PHP 由于是開(kāi)放源碼項(xiàng)目,沒(méi)有什么商業(yè)支持,并且由此而帶來(lái)的執(zhí)行速度緩慢(直到PHP4 之前)。但是PHP 的郵件列表很是有用而且除非你正在運(yùn)行像Yahoo!或者Amazon.com 這樣的極受歡迎的站點(diǎn),你不會(huì)感覺(jué)出PHP 的速度與其他的有什么不同。最起碼我就沒(méi)有感覺(jué)出來(lái)!好了,讓我們來(lái)看看PHP 有那些優(yōu)點(diǎn):
學(xué)習(xí)過(guò)程
我個(gè)人更喜歡PHP 的非常簡(jiǎn)單的學(xué)習(xí)過(guò)程。與Java和Perl 不同,你不必把頭埋進(jìn)100 多頁(yè)的文檔中努力學(xué)習(xí)才可以寫出一個(gè)象樣的程序。只要了解一些基本的語(yǔ)法和語(yǔ)言特色,你就可以開(kāi)始你的PHP 編碼之旅了。之后你在編碼過(guò)程中如果遇到了什么麻煩,還可以再去翻閱相關(guān)文檔。
PHP 的語(yǔ)法類似于C,Perl,ASP 或者JSP。對(duì)于那些對(duì)上述之一的語(yǔ)言較熟悉的人來(lái)說(shuō),PHP 太簡(jiǎn)單了。相反的,如果你對(duì)PHP 了解較多,那么你對(duì)于其他幾種語(yǔ)言的學(xué)習(xí)都很簡(jiǎn)單了。
你只需要30分鐘就可以將PHP 的核心語(yǔ)言特點(diǎn)全部掌握,你可能已經(jīng)非常了解HTML,甚至你已經(jīng)知道怎樣用編輯設(shè)計(jì)軟件或者手工來(lái)制作好看的WEB 站點(diǎn)。由于PHP 代碼能夠無(wú)障礙的添加進(jìn)你的站點(diǎn),在你設(shè)計(jì)和維護(hù)站點(diǎn)的同時(shí),你可以很輕松的加入PHP 使得你的站點(diǎn)更加具有動(dòng)態(tài)特性。
數(shù)據(jù)庫(kù)連接
PHP 可以編譯成具有與許多數(shù)據(jù)庫(kù)相連接的函數(shù)。PHP 與MySQL是現(xiàn)在絕佳的組合。你還可以自己編寫外圍的函數(shù)取間接存取數(shù)據(jù)庫(kù)。通過(guò)這樣的途徑當(dāng)你更換使用的數(shù)據(jù)庫(kù)時(shí),可以輕松的更改編碼以適應(yīng)這樣的變化。PHPLIB就是最常用的可以提供一般事務(wù)需要的一系列基庫(kù)。
可擴(kuò)展性
就像前面說(shuō)的那樣,PHP 已經(jīng)進(jìn)入了一個(gè)高速發(fā)展的時(shí)期。對(duì)于一個(gè)非程序員來(lái)說(shuō)為PHP 擴(kuò)展附加功能可能會(huì)比較難,但是對(duì)于一個(gè)PHP 程序員來(lái)說(shuō)并不困難。
面向?qū)ο缶幊?/p>
PHP 提供了類和對(duì)象?;趙eb的編程工作非常需要面向?qū)ο缶幊棠芰?。PHP支持構(gòu)造器、提取類等。
可伸縮性
傳統(tǒng)上網(wǎng)頁(yè)的交互作用是通過(guò)CGI來(lái)實(shí)現(xiàn)的。CGI程序的伸縮性不很理想,因?yàn)樗鼮槊恳粋€(gè)正在運(yùn)行的CGI程序開(kāi)一個(gè)獨(dú)立進(jìn)程。解決方法就是將經(jīng)常用來(lái)編寫CGI程序的語(yǔ)言的解釋器編譯進(jìn)你的web服務(wù)器(比如mod_perl,JSP)。PHP 就可以以這種方式安裝,雖然很少有人愿意這樣以CGI方式安裝它。內(nèi)嵌的PHP 可以具有更高的可伸縮性。
更多特點(diǎn)
PHP 的開(kāi)發(fā)者們?yōu)榱烁m合web編程,開(kāi)發(fā)了許多外圍的流行基庫(kù),這些庫(kù)包含了更易用的層。你可以利用PHP 連接包括Oracle,MS-Access,Mysql在內(nèi)的大部分?jǐn)?shù)據(jù)庫(kù)。你可以在蒼蠅上畫圖,編寫程序下載或者顯示e-mail。你甚至可以完成網(wǎng)絡(luò)相關(guān)的功能。最好的是,你可以選擇你的PHP 安裝版本需要哪些功能。引用Nissan 的Xterra 的話來(lái)說(shuō)就是PHP 可以做到你想讓它做到的一切而且無(wú)所不能!
MySQL簡(jiǎn)介
MySQL是一個(gè)廣受Linux社區(qū)人們喜愛(ài)的半商業(yè)的數(shù)據(jù)庫(kù)。 MySQL是可運(yùn)行在大多數(shù)的Linux平臺(tái)(i386,Sparc,etc),以及少許非Linux甚至非Unix平臺(tái)。
許可費(fèi)用
MySQL的普及很大程度上源于它的寬松,除了略顯不尋常的許可費(fèi)用。MySQL的價(jià)格隨平臺(tái)和安裝方式變化。MySQL的Windows版本(NT和9X)在任何情況下都不免費(fèi),而任何Unix變種(包括Linux)的MySQL如果由用戶自己或系統(tǒng)管理員而不是第三方安裝則是免費(fèi)的,第三方案莊則必須付許可費(fèi)。
價(jià)格
平臺(tái)安裝方式價(jià)格
Windows NT,9X 任何200美元
Unix或Linux 自行安裝免費(fèi)
Unix或Linux 第三方安裝200美元
需要一個(gè)應(yīng)用組件200美元
可以得到多種支持合同,內(nèi)容太多不再羅列,最新報(bào)價(jià)可咨詢MySQL站點(diǎn)。
3、安裝
可以在MySQL站點(diǎn)上獲得大多數(shù)主要的軟件包格式(RPM、DBE、TGZ),客戶端庫(kù)和各種語(yǔ)言“包裝”(Wrapper)可以分開(kāi)的RPM格式獲得。RPM格式的安裝沒(méi)有多大麻煩,并且無(wú)需初始配置。在rc3.d(以RedHat RPM為例)生成一個(gè)初始腳本,故MySQL守護(hù)進(jìn)程在多用戶模式下重啟時(shí)被啟動(dòng)運(yùn)行。MySQL的守護(hù)進(jìn)程(mysqld)消耗很少的內(nèi)存(在運(yùn)行RedHat 5.1的奔騰133上,每個(gè)守護(hù)進(jìn)程使用500K內(nèi)存和另外4M共享內(nèi)存的開(kāi)銷)并在只有在執(zhí)行真正的查詢時(shí)才裝載到處理器上,這意味著對(duì)小型數(shù)據(jù)庫(kù)來(lái)說(shuō),MySQL可以相當(dāng)輕松地使用而不會(huì)對(duì)其他系統(tǒng)功能有太大的影響。
數(shù)據(jù)類型
字段支持大量數(shù)據(jù)類型是件好事。通常的整數(shù)、浮點(diǎn)數(shù)、字符串和數(shù)字均以多種長(zhǎng)度表示,并支持變長(zhǎng)的BLOB(Binary Large OBject)類型。對(duì)整數(shù)字段由自動(dòng)增量選項(xiàng),日期時(shí)間字段也能很好的表示。
MySQL與大多數(shù)其他數(shù)據(jù)庫(kù)系統(tǒng)不同的是提供兩個(gè)相對(duì)不常用的字段類型:ENUM和SET。ENUM是一個(gè)枚舉類型,非常類適于Pascal語(yǔ)言的枚舉類型,它允許程序員看到類似于'red、'green'、'blue'的字段值,而MySQL只將這些值存儲(chǔ)為一個(gè)字節(jié)。SET也是從Pascal借用的,它也是一個(gè)枚舉類型,但一個(gè)單獨(dú)字段一次可存儲(chǔ)多個(gè)值,這種存儲(chǔ)多個(gè)枚舉值的能力也許不會(huì)給你一些印象(并可能威脅第三范式定義),但正確使用SET和CONTAINS關(guān)鍵字可以省去很多表連接,能獲得很好的性能提高。
5、SQL兼容性
MySQL包含一些與SQL標(biāo)準(zhǔn)不同的轉(zhuǎn)變,他們的大多數(shù)被設(shè)計(jì)成是對(duì)SQL語(yǔ)言腳本語(yǔ)言的不足的一種補(bǔ)償。然而,另一些擴(kuò)展確實(shí)使 MySQL與眾不同,例如,LINK子句搜索是自動(dòng)地忽略大小寫的。MySQL 也允許用戶自定義的SQL函數(shù),換句話說(shuō),一個(gè)程序員可以編寫一個(gè)函數(shù)然后集成到MySQL中,并且其表現(xiàn)的與任何基本函數(shù)如SUM()或AVG ()沒(méi)有什么不同。函數(shù)必須被編譯道一個(gè)共享庫(kù)文件中(.so文件),然后用一個(gè)LOAD FUNCTION命令裝載。
它也缺乏一些常用的SQL功能,沒(méi)有子選擇(在查詢中的查詢)。視圖(View)也沒(méi)了。當(dāng)然大多數(shù)子查詢可以用簡(jiǎn)單的連接(join)子句重寫,但有時(shí)用兩個(gè)嵌套的查詢思考問(wèn)題比一個(gè)大連接容易。同樣,視圖僅僅為程序員隱蔽where子句,但這正是程序員們期望的另一種便利。
存儲(chǔ)過(guò)程和觸發(fā)器
MySQL沒(méi)有一種存儲(chǔ)過(guò)程(Stored Procedure)語(yǔ)言,這是對(duì)習(xí)慣于企業(yè)級(jí)數(shù)據(jù)庫(kù)的程序員的最大限制。多語(yǔ)句SQL命令必須通過(guò)客戶方代碼來(lái)協(xié)調(diào),這種情形是借助于相當(dāng)健全的查詢語(yǔ)言和賦予客戶端鎖定和解鎖表的能力,這樣才允許的多語(yǔ)句運(yùn)行。
7、參考完整性(Referential Integrity-RI)
MySQL的主要的缺陷之一是缺乏標(biāo)準(zhǔn)的RI機(jī)制;然而,MySQL的創(chuàng)造者也不是對(duì)其用戶的愿望置若罔聞,并且提供了一些解決辦法。其中之一是支持唯一索引。Rule限制的缺乏(在給釘字段域上的一種固定的范圍限制)通過(guò)大量的數(shù)據(jù)類型來(lái)補(bǔ)償。不簡(jiǎn)單地提供檢查約束(一個(gè)字段相對(duì)于同一行的另一個(gè)字段的之值的限制)、外部關(guān)鍵字和經(jīng)常與RI相關(guān)的“級(jí)聯(lián)刪除”功能。有趣的是,當(dāng)不支持這些功能時(shí),SQL分析器容忍這些語(yǔ)句的句法。這樣做目的是易于移植數(shù)據(jù)庫(kù)到MySQL中。這是一個(gè)很好的嘗試,并且它確實(shí)未來(lái)支持該功能留下方便之門;然而,那些沒(méi)有仔細(xì)閱讀文檔的的人可能誤以為這些功能實(shí)際上是存在的。
7、安全性
自始至終我對(duì)MySQL最大的抱怨是其安全系統(tǒng),它唯一的缺點(diǎn)是復(fù)雜而非標(biāo)準(zhǔn),另外只有到調(diào)用mysqladmin來(lái)重讀用戶權(quán)限時(shí)才發(fā)生改變。通常的SQL GRANT/REVOKE 語(yǔ)句到最近的版本才被支持,但是至少他們現(xiàn)在有了。 MySQL的編寫者廣泛地記載了其特定的安全性系統(tǒng),但是它確實(shí)需要一條可能是別無(wú)它法的學(xué)習(xí)過(guò)程。
apache+php+mysql是最好的搭配,也是搭配企業(yè)網(wǎng)絡(luò)的最好的搭配、
如果學(xué)php,那么你可以在網(wǎng)絡(luò)中找尋到很多的教程的,其實(shí)學(xué)任何的程序最好的就是寫,不停的寫不停的看。
作網(wǎng)站當(dāng)然最好的是dreamweaver,它可以寫很多的代碼的,也可以設(shè)計(jì)!
2004年7月,PHP5正式版本的發(fā)布,標(biāo)志著一個(gè)全新的PHP時(shí)代的到來(lái)。它的核心是第二代Zend引擎,并引入了對(duì)全新的PECL模塊的支持。PHP5的最大特點(diǎn)是引入了面向?qū)ο蟮娜繖C(jī)制,并且保留了向下的兼容性。程序員不必再編寫缺乏功能性的類,并且能夠以多種方法實(shí)現(xiàn)類的保護(hù)。另外,在對(duì)象的集成等方面也不再存在問(wèn)題。使用PHP5引進(jìn)了類型提示和異常處理機(jī)制,能更有效的處理和避免錯(cuò)誤的發(fā)生。
在不斷更新的同時(shí),PHP5依然保留對(duì)舊有的PHP4程序可以運(yùn)行于PHP5的平臺(tái)
[PHP5]
PHP5
上而不會(huì)出現(xiàn)較大問(wèn)題。隨著MySQL數(shù)據(jù)庫(kù)的發(fā)展,PHP5還綁定了新的MySQLi擴(kuò)展模塊,它提供了一些更加有效的方法和實(shí)用工具用于處理數(shù)據(jù)庫(kù)操作。這些方法大都以面向?qū)ο蟮姆绞綄?shí)現(xiàn),同時(shí)也極大地提高了基于數(shù)據(jù)庫(kù)的Web項(xiàng)目的執(zhí)行速度。
另外,PHP5中還改進(jìn)了創(chuàng)建動(dòng)態(tài)圖片的功能,目前能夠支持多種圖片格式(如PNG、GIF、TTIF、JPGE等)。PHP5以及內(nèi)置了對(duì)GD2庫(kù)的支持,因此安裝GD2庫(kù)(主要指UNIX系統(tǒng)中)也不再是件難事,這使得處理圖像十分簡(jiǎn)單和高效。
大多數(shù)Web程序開(kāi)發(fā)者依然將XML作為一個(gè)徹底的簡(jiǎn)單數(shù)據(jù)庫(kù)使用。PHP5中也采用了一系列簡(jiǎn)單易用、功能強(qiáng)大的方法處理XML文檔。
今天,已經(jīng)有包括雅虎和亞馬遜等在內(nèi)的數(shù)百萬(wàn)網(wǎng)站,以及眾多的開(kāi)發(fā)人員和編程愛(ài)好者正在使用PHP。從最初的PHP/FI到現(xiàn)在的PHP5,PHP的發(fā)展是及其迅猛的,其未來(lái)的發(fā)展前景也必定令人矚目。
php的數(shù)據(jù)類型有:1、String字符串型;2、Integer整型;3、Float和Double浮點(diǎn)型;4、Boolean布爾型;5、Array數(shù)組;6、Object對(duì)象;7、NULL空值等等。
redis是一個(gè)key-value存儲(chǔ)系統(tǒng)。和Memcached類似,它支持存儲(chǔ)的value類型相對(duì)更多,包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會(huì)周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實(shí)現(xiàn)了master-slave(主從)同步。
Redis 是一個(gè)高性能的key-value數(shù)據(jù)庫(kù)。redis的出現(xiàn),很大程度補(bǔ)償了memcached這類keyvalue存儲(chǔ)的不足,在部 分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫(kù)起到很好的補(bǔ)充作用。它提供了Python,Ruby,Erlang,PHP客戶端,使用很方便。
若想在PHP中使用redis,首先要先安裝redis。然后在PHP中配置擴(kuò)展。
安裝redis。
首先下載好redis安裝文件,解壓到D盤或其他盤。
然后通過(guò)Dos命令行進(jìn)行安裝。
把這個(gè)文件夾復(fù)制到其它地方,比如D:\redis 目錄下。
打開(kāi)一個(gè)cmd窗口 使用cd命令切換目錄到D:\redis 運(yùn)行 redis-server.exe redis.conf
如果想方便的話,可以把redis的路徑加到系統(tǒng)的環(huán)境變量里,這樣就省得再輸路徑了,后面的那個(gè)redis.conf可以省略,如果省略,會(huì)啟用默認(rèn)的。
這時(shí)候另啟一個(gè)cmd窗口,原來(lái)的不要關(guān)閉,不然就無(wú)法訪問(wèn)服務(wù)端了
切換到redis目錄下運(yùn)行 redis-cli.exe -h 127.0.0.1 -p 6379
這時(shí)候,就已經(jīng)完成配置了。
完成了配置之后,要在PHP中添加redis的擴(kuò)展,之后才可以用PHP靈活的使用它。
在windows下安裝php的redis擴(kuò)展非常簡(jiǎn)單,下載一個(gè).dll擴(kuò)展包放到php的ext目錄下,在php.ini里邊添加一行配置就可以了。
php代碼測(cè)試
redis=newRedis();redis-connect(‘127.0.0.1′,6379);
redis?set(‘test′,′helloworld!′);echoredis-get(‘test’);
輸出hello world!