
【基本介紹】
PHP是英文超級文本預處理語言(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種 HTML 內(nèi)嵌式的語言,是一種在服務器端執(zhí)行的嵌入HTML文檔的腳本語言,語言的風格有類似于C語言,現(xiàn)在被很多的網(wǎng)站編程人員廣泛的運用。PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創(chuàng)新的語法。它可以比 CGI 或者 Perl 更快速的執(zhí)行動態(tài)網(wǎng)頁。用PHP做出的動態(tài)頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標記的CGI要高許多;與同樣是嵌入HTML文檔的腳本語言JavaScript相比,PHP在服務器端執(zhí)行,充分利用了服務器的性能;PHP執(zhí)行引擎還會將用戶經(jīng)常訪問的PHP程序駐留在內(nèi)存中,其他用戶再一次訪問這個程序時就不需要重新編譯程序了,只要直接執(zhí)行內(nèi)存中的代碼就可以了,這也是PHP高效率的體現(xiàn)之一。PHP具有非常強大的功能,所有的CGI或者JavaScript的功能PHP都能實現(xiàn),而且支持幾乎所有流行的數(shù)據(jù)庫以及操作系統(tǒng)。【的特性包括】
1. PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創(chuàng)新的語法。2. PHP可以比CGI或者Perl更快速的執(zhí)行動態(tài)網(wǎng)頁——動態(tài)頁面方面,與其他的編程語言相比,
PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成htmL標記的CGI要高許多;
PHP具有非常強大的功能,所有的CGI的功能PHP都能實現(xiàn)。
3. PHP支持幾乎所有流行的數(shù)據(jù)庫以及操作系統(tǒng)。
4. 最重要的是PHP可以用C、C++進行程序的擴展!
【的優(yōu)勢】
1、開放源代碼所有的PHP源代碼事實上都可以得到。
2、免費性
和其它技術(shù)相比,PHP本身免費且是開源代碼。
3、快捷性
程序開發(fā)快,運行快,技術(shù)本身學習快。嵌入于HTML:因為PHP可以被嵌入于HTML語言,它相對于其他語言。編輯簡單,實用性強,更適合初學者。
4、跨平臺性強
由于PHP是運行在服務器端的腳本,可以運行在UNIX、LINUX、WINDOWS、Mac OS下。
5、效率高
PHP消耗相當少的系統(tǒng)資源。
6、圖像處理
用PHP動態(tài)創(chuàng)建圖像,PHP圖像處理默認使用GD2。且也可以配置為使用image magick進行圖像處理。
7、面向?qū)ο?br />在php4,php5 中,面向?qū)ο蠓矫娑加辛撕艽蟮母倪M,php完全可以用來開發(fā)大型商業(yè)程序。
8、專業(yè)專注
PHP支持腳本語言為主,同為類C語言。

【更新說明】
PHP5.5 將不再支持Windows XP和2003,這些系統(tǒng)已經(jīng)有十年的歷史,所以PHP將不再提供支持。棄用e修飾符
e修飾符是指示preg_replace函數(shù)用來評估替換字符串作為PHP代碼,而不只是僅僅做一個簡單的字符串替換。不出所料,這種行為會源源不斷的出現(xiàn)安全問題。這就是為什么在PHP5.5 中使用這個修飾符將拋出一個棄用警告。作為替代,你應該使用preg_replace_callback函數(shù)。你可以從RFC找到更多關(guān)于這個變化相應的信息。
新增函數(shù)和類 接下來,我們將看到在計劃之中的新增函數(shù)和類:
boolval()
PHP已經(jīng)實現(xiàn)了strval、intval和floatval的函數(shù)。為了達到一致性將添加boolval函數(shù)。它完全可以作為一個布爾值計算,也可以作為一個回調(diào)函數(shù)。
hash_pbkdf2()
PBKDF2全稱“Password-Based Key Derivation Function 2”,正如它的名字一樣,是一種從密碼派生出加密密鑰的算法。這就需要加密算法,也可以用于對密碼哈希。
如果您使用的是從apache.org PHP與Apache1或者apache2,您需要使用PHP的VC6的版本
如果您使用的是PHP與IIS,你應該使用PHP的VC9版本
VC6的版本是與傳統(tǒng)的Visual Studio6編譯器編譯
VC9版本的Visual Studio 2008編譯器編譯,并在性能和穩(wěn)定性的改善。
VC9版本需要你有微軟2008的C ++運行時(x86)
Microsoft 2008 C++ Runtime (x86)
2008年微軟的C ++運行時(64)安裝
Microsoft 2008 C++ Runtime (x64)
不要使用VC9 apache.org二進制文件的版本
VC9 Apache的版本可以讀取Apache的休息室。我們用自己的二進制文件,建立了Apache SAPIs。
【安裝教程】
在IIS6上安裝PHP5 教程1、首先在php.net上下載windows用的zip包。然后解壓,如解壓在“C:\php5”
2、把根目錄下的php5ts.dll復制到系統(tǒng)windows目錄下;把php.ini-dist文件改名為php.ini后復制到系統(tǒng)windows目錄下。
3、用文本編輯器打開php.ini文件,查找“register_globals”,把后面的Off改為On。該項設置是關(guān)于自定義全局變量。
4、查找“extension_dir”,把后面的值改為php解壓文件夾的ext子目錄下,如“C:\php5\ext”
5、查找“extension”,把需要用到的擴展模塊前的;號去掉。如需要用mysql的就是php_mysql.dll,如需要用mysqli的話,就需要自己加一句extension=php_mysqli.dll。有些擴展庫可能需要額外的 DLL 才能工作,具體請查看這里,如果列表里的注解中有說明,則需要在解壓根目錄或者ext子目錄找到該文件,然后復制到系統(tǒng)windows目錄中。
如php_mysql.dll和php_mysqli.dll就需要把根目錄下的libmysql.dll復制到系統(tǒng)windows目錄中
6、打開IIS,找到需要使用php的站點,點右鍵-屬性,找到“主目錄”選項卡,點擊“配置”按鈕,在“映射”選項卡中,點“添加”按鈕,通過“瀏覽”,找到php解壓目錄下的php5isapi.dll文件,確定,“擴展名”填“.php”,其他選項默認即可。
7、找到IIS的web服務擴展,點擊“添加一個新的web服務擴展”,擴展名可以為“php”,添加文件同樣為php5isapi.dll,并把“設置擴展狀態(tài)為允許”勾選。
8、在開始-運行里輸入iisreset,確定,重啟IIS。至此,在IIS6上安裝PHP5已經(jīng)完成。
常見問題:
1、如出現(xiàn)一些“failed to open stream”等提示,一般是因為權(quán)限問題,我的解決方法是給everyone對php的解壓目錄的讀取和運行權(quán)限,給iis兩個用戶對網(wǎng)站的web目錄讀取和運行權(quán)限。相關(guān)參考文章:[小勤]WIN主機配置PHP的若干問題解決方案總結(jié)
PS:關(guān)于php.ini里的選項設置,可以查看這里。
文件名是 php-5.2.14-Win32.zip
http://cn2.php.net/get/php-5.2.14-Win32.zip/from/a/mirror
【更新日志】
實現(xiàn)了64位格式的代碼pack()和unpack()。固定的臭蟲# 51800(proc_open Windows掛永遠)。
固定的臭蟲# 67633(foreach在從一個函數(shù)返回一個數(shù)組,不做復制寫)。
固定的臭蟲# 67739(Windows 8.1/server 2012 R2的OS版本號報告為6.2(而不是6.3))。
固定的臭蟲# 67949(DOMNodeList元素應該可以通過數(shù)組表示法)(Florian)
固定的臭蟲# 68095(addresssanitizer報告php_getopt()堆緩沖區(qū)溢出)。
固定的臭蟲# 68118(美元-> foo。=“測試”;可以把美元-> foo未定義)。
固定的臭蟲# 68129(parse_url() -不完全支持空的用戶名和密碼)(杰凱)
固定的臭蟲# 68365(zend_mm_heap損壞zend_hash_copy內(nèi)存溢出后)。
卷曲的:
添加curl_sslversion_tlsv1_0,curl_sslversion_tlsv1_1,和curl_sslversion_tlsv1_2常數(shù)如果由libcURL(拉)
FileInfo:
固定的臭蟲# 66242(libmagic:不要假設char簽署)。
固定的臭蟲# 68224(緩沖區(qū)溢出libmagic / readcdf。C被addresssanitizer)。
固定的臭蟲# 68283(FileInfo:出界ELF注意標題讀)。
FPM:
固定的臭蟲# 65641(php-fpm錯誤定義script_name變量使用Apache,mod_proxy-fcgi與ProxyPass時)。
實現(xiàn)FR # 55508(聽和listen.allowed_clients應該采取IPv6地址)。
GD:
固定的臭蟲# 65171(imagescale()無高度參數(shù))。
GMP:
實施gmp_random_range()和gmp_random_bits()。
固定的臭蟲# 63595(GMP管理內(nèi)存沖突與其他圖書館使用GMP)。
mysqli:
固定的臭蟲# 68114(在一些OS X機固定寬度的十進制支持鏈接錯誤)(keyur govande)
ODBC:
固定的臭蟲# 68087(ODBC不正確讀取日期列在前面的varchar列)(keyur govande)
OpenSSL:
固定的臭蟲# 68074(允許使用系統(tǒng)的密碼列表而不是硬編碼的值)。
pdo_pgsql:
固定的臭蟲# 68199(PDO::pgsqlgetnotify不支持通知有效載荷)(Matteo,阿蘭拉波特)
固定的臭蟲# 66584(語句釋放分割故障)(Matteo)
反射:
固定的臭蟲# 68103(反射進入復制類別名)。
SPL:
固定的臭蟲# 68128(回歸recursiveregexiterator)(杰凱)



































