IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁網(wǎng)絡(luò)編程PHP編程 → PHP的十個高級技巧

PHP的十個高級技巧

時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)

全球超過300萬個互聯(lián)網(wǎng)網(wǎng)站的管理員都在使用PHP,使得它成為最為普及的服務(wù)器端腳本語言之一。其特點是運行速度快、穩(wěn)定可靠、跨平臺,而且是開放源代碼軟件。隨你使用的水平不同,PHP可以很簡單,也可以很復(fù)雜,可以只使用它發(fā)送HTML表格元素,還可以在PHP應(yīng)用程序中集成Java和XML。?

如果你對PHP有一定的了解或者看過一些初步的教材,這些技巧可以擴(kuò)展你對PHP的認(rèn)識,使你掌握一些常見的和高級的PHP功能。?

一、把PHP安裝為Apache的DSO?
PHP在Linux/Unix平臺上經(jīng)常與Apache搭配使用,在安裝PHP時,有三種安裝方式可供選擇:靜態(tài)模式、動態(tài)模式(DSO)、CGI二進(jìn)制模式。?

由于易于維護(hù)和升級,我強(qiáng)烈建議以DSO方式安裝PHP。例如,初次安裝時如果安裝的PHP僅支持數(shù)據(jù)庫,隨后希望再安裝支持加密的模塊,只要運行"make clean",添加新的配置選項,然后再運行"make"和"make install"即可,一個新的PHP模塊就會安裝在Apache中適當(dāng)?shù)奈恢蒙?,然后重新啟動Apache,而無需重新編譯Apache。?

下面的步驟將安裝一個全新的Apache,并以DSO方式安裝PHP:?

1、從Apache軟件基金會得到最新版本的Apache源代碼;?

2、把得到的源代碼放到/usr/local/或者/opt/目錄下,或者你指定的任意目錄中;?

3、運行Gunzip對文件進(jìn)行解壓縮,得到后綴為.tar的文件;?

4、運行下面的命令,把文件安裝到apache_[version]目錄中:?

tar -xvf apache_[version].tar?

5、進(jìn)入/usr/local/apache_[version]目錄(或者在步驟4中安裝壓縮文件的目錄);?

6、鍵入下面的命令為編譯Apache作準(zhǔn)備,用你自己的路徑替換其中的[path],例如,/usr/local/apache[version],現(xiàn)在已經(jīng)設(shè)置了mod_so的新值,它將允許Apache使用DSO模塊;?

7、回到提示符狀態(tài)后鍵入make,并等待再次回到提示符狀態(tài);?

8、執(zhí)行"make install"命令。?

至此,Apache已經(jīng)安裝完畢,系統(tǒng)將重回到提示符狀態(tài)。接下來我們開始安裝PHP:?

1、在PHP主頁的下載區(qū)中找到最新版本的鏈接;?

2、把文件下載到一個適當(dāng)?shù)哪夸浿?,例?usr/local/或/opt/或者你指定的任意目錄中;?

3、運行Gunzip對文件進(jìn)行解壓縮,得到后綴為.tar的文件;?

4、執(zhí)行下面的命令把文件安裝在php-[version]目錄中:?

tar -xvf php-[version]?

5、進(jìn)入/usr/local/php-[version]目錄或在步驟4中指定的目錄;?

至此,已經(jīng)作好了以DSO方式安裝PHP的準(zhǔn)備工作,唯一需要修改的配置選項是with-apxs(這是Apache的bin目錄中的一個文件)。為了得到較高的性能,我沒有安裝對MySQL的支持模塊。?

./configure --with-mysql=/[path to mysql] --with-apxs=/[path to apxs]?

6、回到提示符狀態(tài)后執(zhí)行make命令,等待重新返回到提示符狀態(tài);?

7、執(zhí)行make install命令。?

至此,系統(tǒng)以DSO方式在Apache的模塊目錄中安裝了PHP,并對Apache的httpd.conf文件作適當(dāng)?shù)男薷暮蠓祷氐教崾痉麪顟B(tài)?;氐教崾痉麪顟B(tài)后,你還需要對Apache的httpd.conf文件作一些修改。?

1、找到包含有ServerAdmin的一行,添加你的電子郵件地址,如下所示:?

ServerAdmin [email protected]?

2、找到以ServerName開頭的行,把它改為真正的值,例如:?

ServerName localhost?

3、找到內(nèi)容如下所示的小節(jié):?

# And for PHP 4.x, use:?

#?

#AddType application/x-httpd-php .php?

#AddType application/x-httpd-php-source .phps?

修改這些行的內(nèi)容,使PHP 4.0的AddType不再成為注釋,并添加希望在PHP中使用的文件后綴名,上面的內(nèi)容變?yōu)槿缦滤镜膬?nèi)容:?

# And for PHP 4.x, use:?

#?

AddType application/x-httpd-php .php .phtml?

AddType application/x-httpd-php-source .phps?

保存文件,回到上一級目錄,執(zhí)行下面的命令重新啟動Apache:?

./bin/apachectl start?

如果在啟動時沒有出現(xiàn)錯誤提示信息,就可以通過創(chuàng)建一個名為phpinfo.php的只有如下所示一行內(nèi)容的文件,對安裝的Apache、PHP進(jìn)行測試:?

?

把這個文件保存到Apache的文檔根目錄(htdocs)中,然后開啟瀏覽器,鍵入http://localhost/phpinfo.php地址,屏幕上就會出現(xiàn)許多的變量和它們的值。?

如果要重新配置PHP,需要再次運行make clean命令,然后執(zhí)行帶有一系列選項的./configure命令,然后再執(zhí)行make和make install命令,Apache的目錄模塊中就會出現(xiàn)一個新的模塊,只要再重新啟動Apache加載這個新的模塊,就一切OK了。?

二、使用PHP本身的對話?
PHP 4.0中最令人期待的特性應(yīng)該是對對話的支持,PHP 3.0的用戶必須使用第三方的軟件否則就不能使用對話,不支持對話一直是PHP最大的缺憾之一。?

只要用戶在瀏覽你的網(wǎng)站,你就可以利用對話維護(hù)與特定用戶有關(guān)的變量,而無需建立多個cookie、使用隱藏表格字段或?qū)⑿畔⒋鎯υ跀?shù)據(jù)庫中。?

在一個網(wǎng)頁上啟動一個對話,就會使PHP引擎知道你想啟動一個對話(如果還沒有啟動)或者繼續(xù)當(dāng)前的對話:?

session_start();?

啟動一個對話將通過cookie向用戶發(fā)送一個識別字符串(例如940f8b05a40d5119c030c9c7745aead9),在服務(wù)器端,會創(chuàng)建一個與識別字符串匹配的臨時文件,例如sess_940f8b05a40d5119c030c9c7745aead9,這個文件中包含注冊的對話變量以及它們的值。?

用來顯示對話的作用的最常見的例子是訪問計數(shù)器。啟動PHP模塊,確保PHP代碼是文件的第一行,在PHP代碼之前不要有空格、HTML代碼和其他的代碼。因為對話會發(fā)送一個頭部,因此如果在session_start()之前有空格和HTML代碼,就會得到一個出錯信息。?

// 如果還不存在一個針對某用戶的用戶,則啟動一個對話:?

session_start();?

然后注冊一個名字為count的變量:?

session_register(’count’);?

注冊一個對話變量后,只要對話存在,名字為count的變量也就存在?,F(xiàn)在,count變量還沒有被賦值,如果對它執(zhí)行加1操作,它的值就變?yōu)榱?。?

$count++;?

把上述內(nèi)容綜合在一塊兒,如果還沒有啟動一個對話,就會啟動一個對話;如果不存在一個對話id,就為用戶指定一個好了,注冊一個名字為$count的變量,對$count執(zhí)行加1操作表示用戶已經(jīng)首次訪問了該網(wǎng)頁。?

要知道用戶在當(dāng)前的對話中訪問本頁面的次數(shù),只要顯示$count變量的值即可:?

echo "

You’ve been here $count times.

";?

全部的訪問計數(shù)器代碼如下所示:?

session_start();?

session_register(’count’);?

$count++;?

echo "

You’ve been here $count times.

";?

?>

如果重新加載上述的腳本文件,就會發(fā)現(xiàn)變量count的值增加了1,很酷吧。?

還可以在對話中注冊一個數(shù)組變量,假設(shè)我們注冊了一個名字為$faves的變量:?

$faves = array (’chocolate’,’coffee’,’beer’,’linux’);?

可以象注冊一個簡單變量那樣注冊一個數(shù)組變量:?

session_register(’faves’);?

引用數(shù)組變量與引用簡單變量沒有什么二樣,如果一個用戶在網(wǎng)頁上指出在生活中的愛好時,可以把他的愛好注冊到一個被稱作$faves的數(shù)組變量中,然后可以在另一個網(wǎng)頁中很方便地把這些愛好顯示出來:?

session_start();?

echo "My user likes:?

    ";?

    while (list(,$v) = each ($faves)) {?

    echo "

  • $v"; }?

    echo "

";?

?>?

然后你就得到了一個關(guān)于用戶愛好的清單。?

對話變量不能被查詢字符串覆蓋,也就是說我們不能輸入http:///www.yourdomain.com/yourscript.php?count=56給注冊變量$count指定一個新值,這一點對于安全很重要:只能在服務(wù)器端的腳本中刪除一個沒有注冊的對話變量。?

如果要完全刪除一個對話變量,首先需要從系統(tǒng)中注銷它:?

session_unregister(’count’);?

要完全刪除一個對話變量的腳本是非常簡單,如下所示:?

session_destroy();?

使用對話變量可以減少訪問數(shù)據(jù)庫的頻率,使代碼更加清晰,而且可以減少對用戶發(fā)送的cookie的數(shù)量,它是最簡單的方法了。?
三、文件是我們的朋友?
  無論你在開發(fā)的網(wǎng)站規(guī)模的大小,都應(yīng)該意識到代碼重用的重要性,無論這些代碼是HTML、還是PHP代碼。例如,你必須至少每年改變一次包含版權(quán)信息的頁腳,如果你的網(wǎng)站含有1000個頁面,每年修改一次也是個很煩人的事兒。?

在PHP中,至少有幾個函數(shù)可以幫助你實

關(guān)鍵詞標(biāo)簽:PHP高級技巧

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 plsql developer怎么連接數(shù)據(jù)庫-plsql developer連接數(shù)據(jù)庫方法 plsql developer怎么連接數(shù)據(jù)庫-plsql developer連接數(shù)據(jù)庫方法 2021年最好用的10款php開發(fā)工具推薦 2021年最好用的10款php開發(fā)工具推薦 php利用淘寶IP庫獲取用戶ip地理位置 php利用淘寶IP庫獲取用戶ip地理位置 在 PHP 中使用命令行工具 在 PHP 中使用命令行工具

相關(guān)下載

    人氣排行 詳解ucenter原理及第三方應(yīng)用程序整合思路、方法 plsql developer怎么連接數(shù)據(jù)庫-plsql developer連接數(shù)據(jù)庫方法 PHP中防止SQL注入攻擊 PHP會話Session的具體使用方法解析 PHP運行出現(xiàn)Notice : Use of undefined constant 的解決辦法 PHP如何清空mySQL數(shù)據(jù)庫 CakePHP程序員必須知道的21條技巧 PHP采集圖片實例(PHP采集)