曾經簡單的學習過PHP,看的是《PHP和MySQL Web開發》,還有萬能的搜索引擎的幫助。此次準備系統的學習一下,參考資料是PHP Manual。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環境推薦使用WampServer、XAMPP和MAMP PRO。
(全文完)