本論壇嚴禁發佈 任何有關成人的資訊
不論短片、圖片、文字或連結,違者立即停止帳號
總版規V2.0
權限列表V2.0 其他論壇設定V2.0
請各位發廣告的會員留意
發相同廣告多於一篇,將刪除該會員所有廣告。
發新話題
打印

PHP教學

PHP教學

PHP教學

第1回
第2回
第3回
第4回
第5回
第6回
第7回
第8回
第9回
第10回
第11回
第12回
第13回
第14回
第15回
最終回

PHP教學 第一回

課1:PHP簡介與程式開發的工具。
摘要: 在這個課程中針對PHP作簡單的介紹,指導學員安裝開發PHP時所使用的工具,以及參考的文件。最後,教導學員使用EditPlus,來撰寫PHP,並將PHP程式上傳至網站。
PHP簡介 :
一、PHP的由來:
在古早古早的時候,也就是1994年。當時有個叫Rasmus Lerdorf的人,他用Perl寫了一些後端的程式,記錄有哪些人看過他的線上履歷表。慢慢地,一些網友對他所寫的程式碼產生興趣。於是,Rasmus Lerdorf就整理這些程式碼,包裝成一個叫作 ”Personal Home Page”的工具。基於個人的興趣,Rasmus Lerdorf又寫了一個腳本語言的核心引擎。然後,又加上了能處理HTML表單輸入的工具,稱作 “Form Interpreter”簡稱FI。在1995年完成的這個版本,當時稱作 “PHP FI”,也有人稱之為 ”PHP2”。

PHP/FI開發出來之後,受到網站開發者的極大的回響,使用PHP/FI來開發網站程式的人越來越多。在1997年中的時候,PHP從Rasmus Lerdorf個人維護的開發專案,轉變成一個重要的網站開發技術。PHP的開發與維護也轉由一個由Rasmus Lerdorf本人和Andi Gutmans、Zeev Suraski、Stig Bakken、Shane Cavaveo、以及Jim Winstead等人所組成的團隊來負責。在1998年6月的時候,Zeev Suraski和Andi Gutmans改寫了PHP語言的解析器,並公佈這新的版本,稱之為PHP3。

到目前為止,PHP已經變成Apache Software Foundation的一個專案計劃。穩定的版本為PHP 4.3.0


二、PHP是什麼東東:

PHP是開放源碼的通用腳本語言,特別適合用來開發網站程式,可以內嵌在HTML碼。PHP程式的原始碼是純文字,所以可以用任何可處理純文字檔的文字編輯器,如:記事本、vi、emac等,來撰寫PHP程式。


PHP程式開發的工具:
一、程式開發的工具

  1. 文字編輯器:用來撰寫程式碼。在這個課程中,我們使用EditPlus。
  2. 程式語言的參考文件:我們使用PHP的線上說明。
  3. 程式庫:別人開發出來的程式庫,可以簡化撰寫程式的工作。

二、EditPlus的下載及安裝

  1. 下載並安裝EditPlushttp://www.editplus.com/download.html
  2. 下載PHP的語法檔。登錄查看圖片或超連結
  3. 將下載完畢PHP的語法檔,解壓縮到EditPlus的安裝目錄底下。


三、EditPlus的PHP環境設定

  1. 啟動EditPlus。
  2. 執行功能表的Tools | Preferences,開啟Preferences的對話方塊。
  3. 設定PHP的語法檔:在Preferences對話方塊,點選左邊的FileseSettings & Syntax。按Add按鈕,參考下圖,設定各欄位,設定完畢後,按Apply按鈕:

4.取消儲存時產生備份檔的設定:在Preferences對話方塊,點選左邊的Files,參考下圖,設定各欄位,設定完畢後,按OK按鈕:

5.產生PHP的樣本檔:執行功能表的File | New | Others,然後Select File Type選PHP,按OK按鈕。在EditPlus的文件編輯面版中輸入以下的文字,然後將檔案存在EditPlus的安裝目錄,檔名為template.php。

[php]<?php
^!
?>[/php]

6.設定PHP的樣本檔:執行功能表的File | New | Configure Templates,按Add按鈕,參考下圖,設定各欄位,設定完畢後,按OK按鈕:

使用EditPlus來開發 PHP程式:

  1. 在C磁碟機底下產生一個資料夾:C:\php。
  2. 啟動EditPlus。
  3. 執行功能表的 File | New | PHP
  4. 輸入以下的程式碼:

[php]<?php
echo date("Y-m-d");
?>[/php]


  5. 存檔,檔名:C:\php\101_01.php。
  6. 使用EditPlus來上傳檔案:執行功能表的 File | FTP | FTP Upload。在Upload對話方塊中,按Setting按鈕,開啟FTP Settings的對話方塊。按Add按鈕,參考下圖,設定遠端主機的帳號、密碼、以及上傳的目錄。設定完畢後,按OK按鈕:
    回到Upload對話方塊後,按Upload按鈕。

7.啟動瀏覽器,輸入網址。如:登錄查看圖片或超連結
一連有18課,第2課快將貼出,想學的密切留意。

PHP教學 第二回

上回說到PHP的簡單資訊,今次會教大家PHP程式設計基礎入門。
摘要: 在這個課程中簡單介紹PHP程式設計的基礎。
PHP程式語言基本注意事項:
一、Web Server 如何分辨PHP的檔案與HTML檔案:

  要讓Web Server 能執行文件中的PHP程式碼,文件的副檔名,必須是 .php或 .phtml。如果要使用其他檔名,請參考各Web Server的設定。

二、程式碼區域的開始與結束:

  PHP的優點之一,就是可以和HTML碼混合在一起。但是為了讓Web Server能區分出 PHP的程式碼與HTML碼,所以,在每段PHP程式碼的開頭必須加入<?php,在結尾的地方加 ?>。

三、命令句:

  在PHP中,每一個命令句必須以分號;作結束。

四、變數:

  變數是用來儲存程式執行時的暫存資料。在PHP中,變數之前必需加 $ 的符號。另外,PHP的大小寫是有差別的,所以在使用變數時,須注意大小寫是否一致。PHP是屬於 weakly typed的程式語言,對資料型態的規範較鬆,可以不先經宣告變數,就可以直接使用。好處是,程式寫起來比較方便,壞處是,程式出問題時,比較難找出錯誤。

五、程式註解:

  PHP的程式註解符號,與C++,Java一樣,單行的註解使用 //。// 之後同一行所有的文字,在執行時都會被乎略。若要使用多行的註解時,可以使用 /* 和 */的註解符號。自/*開始到*/之間的所有文字,在執行時都會被乎略。


PHP 的輸出:
一、echo 與 print的使用:

  要列印輸出程式的運算結果時,可以使用echo(PHP的語言結構)或 print(函數)。以下以實例分別示範echo和 print的用法。理論上,使用echo會比print略有效率。
二、echo.php:

使用 echo 輸出: <br>

這裡的文字, Web Server不會作任何處理, 直接輸出<hr>
[php]<?
echo("有括弧的<br>");

echo "沒括弧的<hr>";

$today = date("Y年m月d日"); //把呼叫 date函數所得的值, 設定給 $today變數

echo <<<END
這鍋使用 "here document" 語法來輸出"一狗票"文字, <br>
所有用 here document的方式輸出的文字, <br>
都可以完整的保留下來, <br>
變數在這裡"也"可以被替換, <br>
今天: $today<br>
END;
?>[/php]
<hr>上面的文字, 是執行過PHP程式所得的輸出結果<br>
這裡的文字, Web Server不會作任何處理, 直接輸出<hr>
以下輸出的結果是 <?php echo $today ?> 的簡寫方式<br>
<?=$today?>
<hr>


三、print.php:

使用 print 輸出: <br>

這裡的文字, Web Server不會作任何處理, 直接輸出<hr>[php]
<?
print("有括弧的<br>");

print "沒括弧的<hr>";

$today = date("Y年m月d日"); //把呼叫 date函數所得的值, 設定給 $today變數

print <<<END
這鍋使用 "here document" 語法來輸出"一狗票"文字, <br>
所有用 here document的方式輸出的文字, <br>
都可以完整的保留下來, <br>
變數在這裡"也"可以被替換, <br>
今天: $today<br>
END;
?>[/php]
<hr>上面的文字, 是執行過PHP程式所得的輸出結果<br>
這裡的文字, Web Server不會作任何處理, 直接輸出<hr>
以下輸出的結果是 <?php print $today ?> 的簡寫方式<br>
<?=$today?>
<hr>


Web的表單處理:
以上我們學到的是,使用PHP來輸出程式運算的結果。接下來我們要學習如何,處理表單所傳遞過來的資料。
一、102_form1.php:
複製內容到剪貼板
代碼:
<html>
<FORM METHOD=POST ACTION="">
帳號: <INPUT TYPE="text" NAME="account"><BR>
密碼: <INPUT TYPE="text" NAME="password"><BR>
<INPUT TYPE="submit" value="送出">
</FORM>
<HR>

你輸入的帳號: <?=$_POST[account]?> <BR>
你輸入的姓名: <?=$_POST[password]?>

<HR>

</html>
程式說明:
在102_form1.php中,我們使用簡寫的方式,把PHP碼內嵌到HTML碼中。
表單所傳遞過來的資料,會按照HTML表單物件的名稱,成為PHP可以讀取的變數。如 :<INPUT TYPE="text" NAME="account"> 這個文字欄位,NAME屬性的值是account。所以,要讀取這個欄位的值,只要使用$account這個變數即可。
練習題:

  1. 把 102_form1.php存成 102_form2.php,中的 Form Method=Post 改為 Form Method=Get,並觀察網址列的變化。
  2. 在瀏覽器中輸入http://www.igt.com.tw/~lib13/102_form1.php?account=abc&password=567,並觀察網頁輸出的結果。
  3. 在瀏覽器中輸入http://www.igt.com.tw/~lib13/102_form2.php?account=efg&password=987,並觀察網頁輸出的結果。

二、使用 if-elseif-else的結構:
1. 102_login.html
複製內容到剪貼板
代碼:
<html>
<FORM METHOD=POST ACTION="102_auth.php">
帳號: <INPUT TYPE="text" NAME="account"><BR>
密碼: <INPUT TYPE="text" NAME="password"><BR>
<INPUT TYPE="submit" value="送出">
</FORM>
</html>
2. 102_auth.php
[php]
<?php
if($account == "lord" && $password == "pass"){
    echo "歡迎 $_POST[account], 你的密碼是 $_POST[password]";
}elseif($_POST[account] == "god" && $_POST[password] == "dog"){
    $y = date("Y") - 1911;
    $m = date("m");
    $d = date("d");
    echo "歡迎 $_POST[account], 今天是民國".$y."年".$m."月".$d."日";
}else{
    echo "登入失敗:<hr> 輸入的資料:<br>帳號: $_POST[account] <br>密碼: $_POST[password]";
}
?>
[/php]
三、簡單的數學運算:
1. 102_rect.html
複製內容到剪貼板
代碼:
<html>
<FORM METHOD=POST ACTION="102_rect.php">
高: <INPUT TYPE="text" NAME="h"><BR>
寬: <INPUT TYPE="text" NAME="w"><BR>
<INPUT TYPE="submit" value="送出">
</FORM>
</html>
2. 102_rect.php
[php]
<?php
$area = $_POST[w] * $_POST[h];
$para = 2 * ($_POST[w] + $_POST[h]);

echo <<<END
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
</head>

<body>
<table width="61" border="0">
<tr>
<td width="36">高</td>
<td width="15">$_POST[h]</td>
</tr>
<tr>
<td>寬</td>
<td>$_POST[w]</td>
</tr>
<tr>
<td>面積</td>
<td>$area</td>
</tr>
<tr>
<td>周長</td>
<td>$para</td>
</tr>
</table>
</body>
</html>
END;
?>[/php]
四、簡單的比較運算:

1. 102_comp.html
複製內容到剪貼板
代碼:
<html>
<FORM METHOD=POST ACTION="102_comp.php">
n1: <INPUT TYPE="text" NAME="n1"><BR>
n2: <INPUT TYPE="text" NAME="n2"><BR>
<INPUT TYPE="submit" value="送出">
</FORM>
</html>
2. 102_comp.php

[php]
<?php
if($_POST[n1] > $_POST[n2]){
    $result = "$_POST[n1] 大於 $_POST[n2]";
}elseif($_POST[n1] < $_POST[n2]){
    $result = "$_POST[n1] 小於 $_POST[n2]";
}else{
    $result = "$_POST[n1] 等於 $_POST[n2]";
}

echo <<<END
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
</head>

<body>
<table border="0">
<tr>
<td width="36">n1</td>
<td width="15">$_POST[n1]</td>
</tr>
<tr>
<td>n2</td>
<td>$_POST[n2]</td>
</tr>
<tr>
<td>結果</td>
<td>$result</td>
</tr>
</table>
</body>
</html>
END;
?>
[/php]
謝謝分享  好文章 值得回覆
發新話題
重要聲明:本論壇是以即時上載留言的方式運作,曼格論壇對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本論壇受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。曼格論壇有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。