PHP 4.0 講義 PHP介紹 1 2 3 4 5 6 7 8 9 A B C D 


實例應用整理

(實例應用1) : 從網站上得知 目前的連線狀況

( 步驟1 ) 可先用 export VISUAL=pico 改變編寫工具, 注意VISUAL是大寫,
    再用 crontab -e 加入個人的時間排程, 加入的內容如下:
    ( crontab 用法參考課本 8-32)

    * * * * * ping -c 3 210.240.232.1 > /home/個人的帳號/www/ping.txt

( 步驟2 ) 撰寫以下檔案 ping.php

<?php
$fp1 = fopen("ping.txt","r"); // 打開檔案, $fp1 是檔案代號 , r參數代表唯讀
echo " 現在時間: ",`date`,"<br>";
echo " 目前從 電算中心到教學大樓的連線狀況 <br>";
fscanf($fp1,"%s",$a);
for($i=1;$i<=3;$i++)
{
fscanf($fp1,"%s %s %s %s %s %s %s",$a,$b,$c,$d,$e,$f,$g);
echo " 兩點間的回應時間為:",$g,"<br>";
};
fclose($fp1); // 關閉檔案
?>

在網頁上的結果

現在時間: Mon Feb 24 17:25:53 CST 2003
目前從 電算中心到教學大樓的連線狀況
兩點間的回應時間為:time=0.872
兩點間的回應時間為:time=0.555
兩點間的回應時間為:time=0.736

( 步驟3 ) 用 crontab -r 移除個人的時間排程, 用 crontab -l 檢視個人的時間排程


(實例應用2): 請讓使用者可以線上查詢自己的薪資 (要求使用者輸入身份証字號, 密碼, 網頁回答他的薪資),假設公司人數不定, 薪資的文字檔如下 : (並代入兩頁互送的觀念), 將一個薪資檔案拆開成 兩個檔案 (密碼檔 和 薪資檔)

密碼檔

身份証字號 密碼

a100100101 aaa
a100100102 bbb
a100100104 ddd
a100100103 ccc

a100100105 eee

薪資檔

身份証字號 薪資

a100100101 54000
a100100102 44000
a100100103 32000
a100100104 34000

a100100105 24000

名為 money41.php

<h1> 薪資查詢系統 </h1>
<form action="money42.php" method="post">
你的身份証字號 :
<input type ="text" name="id"><br>
密     碼 :
<input type ="password" name="pw">
<input type ="submit" value="查詢">
</form>

檔名為 money42.php

<?php
$fp1 = fopen("passwd.txt","r"); // 打開檔案, $fp1 是檔案代號 , r參數代表唯讀
$fp2 = fopen("money2.txt","r"); // 打開檔案, $fp1 是檔案代號 , r參數代表唯讀
for($i=1;!feof($fp1);$i++) // 先依 passwd.txt檔的順序放入 id2[],pw2[]
{
fscanf($fp1,"%s %s",$id2[$i],$pw2[$i]);

}

for($j=1;!feof($fp2);$j++) // 讀取 money2.txt 檔
{
fscanf($fp2,"%s %s",$id3,$money3);
for($k=1;$k<=$i;$k++) // 尋找合適的位置
{
if($id3==$id2[$k]) $money2[$k]=$money3;
}
}

for($k=1;$k<=$i;$k++)
{
if($id==$id2[$k] and $pw==$pw2[$k]) echo $id,",您好,您的薪資為:",$money2[$k],"<br>";
};
fclose($fp1); // 關閉檔案
fclose($fp2); // 關閉檔案

?>


(實例應用3):網路問卷調查程式 ( 注意權限的問題 , 先 touch check.txt , 再 chmod 777 check.txt )

<h1> 問卷調查 </h1>
<form action="check12.php" method="post">

請輸入您的教育程度 :
<select name="education">
<option selected>1.專科(含)以下
<option>2.學士
<option>3.碩士(含)以上
</select><br>
<br>

您的性別:
<input type ="radio" name="q1" value="女" checked>女
<input type ="radio" name="q1" value="男">男
<br>

贊不贊成這門課不當人:
<input type ="radio" name="q2" value="是" checked>贊成
<input type ="radio" name="q2" value="不">不贊成
<br>

<input type ="submit" value="完成">
</form>
<h2> 謝謝您的意見 </h2>

<?php
$fp1 = fopen("check.txt","a");
$str = $education . " " . $q1 . " " . $q2 . "\n";
fputs($fp1,$str);
fclose($fp1);
?>

(實例應用4) : 訪客計數器 ( 注意權限的問題 , 先 touch counter1.txt , 再 chmod 777 counter1.txt )

<?php
$fp1 = fopen("counter1.txt","r"); // 打開檔案, $fp1 是檔案代號 , r參數代表唯讀
fscanf($fp1,"%s",$a); // 讀出一個變數(從$fp1 這個檔案去讀)
fclose($fp1); // 關閉檔案

$a++;

$fp1 = fopen("counter1.txt","w"); // 打開檔案, $fp1 是檔案代號 , w參數代表寫入
fputs($fp1,$a); // 讀出一個變數(從$fp1 這個檔案去讀)
fclose($fp1); // 關閉檔案

echo $a;
?>


(實例應用5) : 利用一頁網頁來匯總其他網頁, 並加上註解 ( 注意權限的問題 , 先 touch counter1.txt , 再 chmod 777 counter1.txt )

觀點1. 可以用 echo 來產生 HTML 碼, 遇到 " , 改成 \"

例: <font color="#0000FF">歡迎光臨</font> , 可以改成 echo "<font color=\"#0000FF\">歡迎光臨</font>"

觀點2. echo " ....$a...." 可以直接產生 值 的 html 碼

例: $a=3; echo " ha, $a > 2"; 在網頁上會出現 ha, 3 > 2

觀點3. 可以利用 include 把其他網頁的內容引進自己的網頁

例: include "http://ccnet.mit.edu.tw/~a05/report.php";

<h1> 企業網路期末報告成果展 </h1>
<h2>報告大綱</h2>
<?php
$fp1 = fopen("final_report_comment.txt","r"); // 打開檔案
for($i=1;$i<=59;$i++)
{
if($i<10)
{
echo "a0",$i," 同學的報告大綱:<br>";
include "http://ccnet.mit.edu.tw/~a0$i/report.php";
}
if($i>9 and $i<51)
{
echo "a",$i," 同學的報告大綱:<br>";
include "http://ccnet.mit.edu.tw/~a$i/report.php";
}
if($i>50)
{
$b=$i-50;
echo "b0",$b," 同學的報告大綱:<br>";
include "http://ccnet.mit.edu.tw/~b0$b/report.php";
}
fscanf($fp1,"%s",$c);
echo "<p>";
echo "<table border=\"0\" width=\"400\" bgcolor=\"#FFFF88\">";
echo "<tr><td><font color=\"#0000FF\">";
echo "老師建議",$c;
echo "</font></td></tr></table>";
}
fclose($fp1); // 關閉檔案
?>


(實例應用6) : header 轉址的使用

由網頁中跳到別頁, 或是其他的 URL

例:

第1頁: 發問 , 第2頁 判斷 如是, , 則轉到第3a頁
  如是,不是, 則轉到第3b頁

第1頁: b1.php

<form action="b2.php" method="post">
<p>請問您的性別</p>
<p><input type="radio" checked name="sex" value="male">男性</p>
<p><input type="radio" name="sex" value="female">女性</p>
<p><input type="submit" name="send" value="傳送"></p>
</form>

第2頁: b2.php

<?php
$sex = $_POST['sex']; // php 4.1 以後要求
if($sex=="male")
{
header('Location: b3a.htm');
}
else
{
header('Location: b3b.htm');
}
?>


(構想1) : 從網站上得取某些記錄的資訊

( 步驟1 ) 在 /var/log 下許多的記錄檔

( 步驟2 ) 用 fopen 將檔案讀取後, 做相關處理再輸出

 

(構想2) : 利用取亂數函數隨機選取首頁的廣告呈現

( 步驟1 ) 寫下幾個不同廣告的文字檔

( 步驟2 ) 亂數函數隨機選取一個數字

( 步驟3 ) 用 fopen 將該數字代表的檔案讀取後, 做相關處理再輸出

 

(構想3) : 網站自動依節慶而代換背景圖片或是小圖飾

( 步驟1 ) 先準備好不同節慶的背景圖片或是小圖飾

( 步驟2 ) 利用時間函數取現在的月、日

( 步驟3 ) 利用 if 判斷 時間的範圍 而使用不同的背景圖片或是小圖飾

 

(構想4) : 呈現本站的網路流量

( 步驟1 ) 將 ifconfig 資訊做定時整理後放入文字檔案

( 步驟2 ) 用 fopen 將 文字檔案做處理後再輸出

 

(構想5) : 對不同的使用者呈現不同的網頁

( 步驟1 ) 由登入畫面產生

( 步驟2 ) 用 fopen 將檔案讀取後, 做相關處理再輸出

 

(構想6) : 性向測驗網站、或心理測驗網站

( 步驟1 ) 用 if 來做

 

(構想7) : 網站時間膠囊, 由使用者種下時間種子, 時間到後自動通知使用者( e-mail or ...)

( 步驟1 ) 利用時間函數


多多上網看看別人的作品, 看能如何應用在自己的作業上, 如下:


PHP 4.0 講義 PHP介紹 1 2 3 4 5 6 7 8 9 A B C D