曾經簡單的學習過PHP,看的是《PHP和MySQL Web開發》,還有萬能的搜尋引擎的幫助。這次準備系統的學習一下,參考資料是PHP Manual。
PHP能做什麼
PHP主要用於服務端的腳本程序,但PHP的功能遠不限於此。 PHP主要用於以下三個領域:
* 服務端腳本
* 命令列腳本
* 編寫桌面應用程式(PHP-GTK)
實用的腳本
$_SERVER
是一個特殊的PHP保留變量,它包含了web伺服器提供的所有信息,稱為超全局變量。可以透過$_SERVER['HTTP_USER_AGENT']
檢查瀏覽頁面的訪客在使用什麼瀏覽器。
對於IE瀏覽器,$_SERVER['HTTP_USER_AGENT']
的值可能是:
<code>Mozilla/<span>5.0</span> (Windows NT <span>6.1</span>; WOW64; Trident/<span>7.0</span>; rv:<span>11.0</span>) <span>like</span> Gecko Mozilla/<span>5.0</span> (compatible; MSIE <span>10.0</span>; Windows NT <span>6.2</span>; Trident/<span>6.0</span>) Mozilla/<span>5.0</span> (compatible; MSIE <span>9.0</span>; Windows NT <span>6.1</span>; Trident/<span>5.0</span>) Mozilla/<span>4.0</span> (compatible; MSIE <span>8.0</span>; Windows NT <span>6.1</span>; Trident/<span>4.0</span>) Mozilla/<span>4.0</span> (compatible; MSIE <span>7.0</span>; Windows NT <span>6.0</span>) Mozilla/<span>4.0</span> (compatible; MSIE <span>6.0</span>; Windows NT <span>5.1</span>)</code>
可以透過呼叫strpos()
函數,判斷使用者代理程式是否為IE瀏覽器。
<code><span><?php</span><span>$ua</span> = <span>$_SERVER</span>[<span>'HTTP_USER_AGENT'</span>]; <span>if</span>(strpos(<span>$ua</span>, <span>'Trident'</span>) !== <span>FALSE</span> || strpos(<span>$ua</span>, <span>'MSIE'</span>) !== <span>FALSE</span>) { <span>echo</span><span>'You are using Internet Explorer.'</span>; } <span>else</span> { <span>echo</span><span>'You are not using Internet Explorer.'</span>; }</code>
這段程式碼中涉及了strpos()
、!==
和FALSE
的使用。
strpos()
是PHP的內建函數,其功能是在一個字串(haystack)中搜尋另外一個字串(needle)。若找到,函數傳回needle在haystack中相對於開頭的位置;如果沒有,則傳回FALSE。
<code><span><?php</span><span>$haystack</span> = <span>'hello, world.'</span>; <span>$needle</span> = <span>'wo'</span>; <span>echo</span> strpos(<span>$haystack</span>, <span>$needle</span>);</code>
對於上面這段程式碼,strpos()
回傳的結果為7。對於strpos()
傳回的具體的值,可能在空格、中文時,計算方法有所不同,後面再討論。
處理表單
PHP處理表單的方式很方便,可以使用超全域變數$_POST
取得資料。使用下面的方式定義一個簡單的HTML表單,當使用者填寫了該表單並點擊了提交按鈕,頁面action.php
將被呼叫。
<code><span><<span>form</span><span>action</span>=<span>"action.php"</span><span>method</span>=<span>"post"</span>></span><span><<span>p</span>></span>Name: <span><<span>input</span><span>type</span>=<span>"text"</span><span>name</span>=<span>"name"</span> /></span><span></<span>p</span>></span><span><<span>p</span>></span>Age: <span><<span>input</span><span>type</span>=<span>"text"</span><span>name</span>=<span>"age"</span> /></span><span></<span>p</span>></span><span><<span>p</span>></span><span><<span>input</span><span>type</span>=<span>"submit"</span> /></span><span></<span>p</span>></span><span></<span>form</span>></span></code>
透過下面這段程式碼可以列印來自表單的資料。
<code>Hello, <span><?php</span><span>echo</span> htmlspecialchars(<span>$_POST</span>[<span>'name'</span>]); <span>?></span>. You are <span><?php</span><span>echo</span> (int)<span>$_POST</span>[<span>'age'</span>]; <span>?></span> year(s) old.</code>
這段程式碼中也涉及了htmlspecialchars()
和(int)
的使用。 htmlspecialchars()
使得HTML之中的特殊字元被正確的編碼,而不會被使用者在頁面注入HTML標籤或Javascript程式碼。
工具
工欲善其事,必先利其器。
有個好的工具,能夠事半功倍。為了提高效率,我喜歡使用VIM,並且在命令列中運行程式碼。
對於工具,這個帖子講的不錯的,window下的cmd替代工具? - windows - SegmentFault。
PHP環境建議使用WampServer和XAMPP。
(全文完)
以上就介紹了入門指引 - PHP手冊筆記,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。