入門指引 - PHP手冊筆記

曾經簡單的學習過PHP,看的是《PHP和MySQL Web開發》,還有萬能的搜索引擎的幫助。此次準備系統的學習一下,參考資料是PHP Manualphp

PHP能作什麼

PHP主要用於服務端的腳本程序,但PHP的功能遠不侷限於此。PHP主要用於如下三個領域:html

  • 服務端腳本web

  • 命令行腳本apache

  • 編寫桌面應用程序(PHP-GTK)segmentfault

實用的腳本

$_SERVER是一個特殊的PHP保留變量,它包含了web服務器提供的全部信息,被稱爲超全局變量。能夠經過$_SERVER['HTTP_USER_AGENT']檢查瀏覽頁面的訪問者在用什麼瀏覽器。windows

對於IE瀏覽器,$_SERVER['HTTP_USER_AGENT']的值多是:瀏覽器

Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

能夠經過調用strpos()函數,判斷用戶代理是否爲IE瀏覽器。服務器

<?php 
$ua = $_SERVER['HTTP_USER_AGENT'];
if(strpos($ua, 'Trident') !== FALSE || strpos($ua, 'MSIE') !== FALSE) {
    echo 'You are using Internet Explorer.';
} else {
    echo 'You are not using Internet Explorer.';
}

這段代碼中涉及到了strpos()!==FALSE的使用。ide

strpos()是PHP的一個內置函數,其功能是在一個字符串(haystack)中搜索另一個字符串(needle)。若找到,則函數返回needle在haystack中相對於開頭的位置;若是沒有,則返回FALSE。函數

<?php 
$haystack = 'hello, world.';
$needle = 'wo';
echo strpos($haystack, $needle);

對於上面這段代碼,strpos()返回的結果爲7。對於strpos()返回的具體的值,可能在空格、中文時,計算方法有所不一樣,後面再討論。

處理表單

PHP處理表單的方式很方便,能夠使用超全局變量$_POST得到數據。使用下面的方式定義一個簡單的HTML表單,當用戶填寫了該表單並點擊了提交按鈕,頁面action.php將被調用。

<form action="action.php" method="post">
    <p>Name: <input type="text" name="name" /></p>
    <p>Age: <input type="text" name="age" /></p>
    <p><input type="submit" /></p>
</form>

經過下面這段代碼能夠打印來自表單的數據。

Hello, <?php echo htmlspecialchars($_POST['name']); ?>. 
You are <?php echo (int)$_POST['age']; ?> year(s) old.

這段代碼中還涉及到了htmlspecialchars()(int)的使用。htmlspecialchars()使得HTML之中的特殊字符被正確的編碼,從而不會被使用者在頁面注入HTML標籤或者Javascript代碼。

工具

工欲善其事,必先利其器。

有個好的工具,可以事半功倍。爲了提升效率,我喜歡使用VIM,而且在命令行中運行代碼。

對於工具,這個帖子講的不錯的,window下的cmd替代工具? - windows - SegmentFault

PHP環境推薦使用WampServerXAMPPMAMP PRO

(全文完)

相關文章
相關標籤/搜索