4-3
PHP
迴圈敘述
內容:
4-3-1 PHP
敘述&範例
與一般程式一樣,PHP
迴圈敘述有:
(1)
for 迴圈:如for($a=1;
$a<=10; $a++) { $sum = $sum + $a;}。
(2)
while 迴圈:如
while ($a <=10) { $sum = $sum + $a;}。
(3)
do/while 迴圈:如
do {$sum = $sum + $a}while($a <10);。
(4)
foreach 迴圈:如
foreach ($arr as $key ) { echo "$arr[$key] <br>";}
(5)
continue :繼續敘述句、break:迴圈中斷敘述句。
(A)
程式範例如下:Ex4_7.php
迴圈最容顯現出
PHP Engine 的功能,如欲利用
HTML 語言顯示十句『我愛您』,則必須連續寫十句,改用
PHP 迴圈來敘述只要寫一句就可以,要顯示
10 次、100
次都可以,範例如下:
1
2
3
4
5
6 |
<?php
echo " <p> PHP
迴圈範例
</p>";
for($i=0; $i<=10; $i=$i+1) {
echo "我衷心告訴您:我愛您
<BR>";
}
?> |
(B)
執行結果如下:
![](../MySQL_插圖/chap4/4-9.png)
4-3-2
範例研討
-
列印中空矩形
(A)
網頁功能
– Ex4_8.php
公司希望製作一個有愛心的
logo,期望顯示如下:
![](../MySQL_插圖/chap4/4-10.png)
(B)
製作技巧
這張圖如果僅利用
HTML 來製作可能非常費時,不滿意要更改也很困難,如果用
PHP 就簡單許多了。首先,我們必須到
google 搜尋愛心與玫瑰圖形的素材,並將它下載到範例的資料夾內。這張圖寬與高大略由
20
個愛心排列而成,因電腦是一行接一行輸出,則輸出步驟如下:
(1)
輸出 5
行,每行
20 個愛心圖。
(2)
再輸出 5
行,每行先
5 個愛心、再
10 個玫瑰花、最後再
5 個愛心。
(3)
最後再輸出 5
行,每行
20 個愛心圖。
(4)
注意每一個圖形輸出都需指定相同大小(width=20、height=20)
我們將上述的步驟寫成程式即可。
(C)
程式範例:
首先需要網路上下載愛心圖片(love.phg)與玫瑰花圖片(flower.png),兩者皆要放在與此程式同一目錄下。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 |
<?php
for ($i=1; $i<=5; $i++) {
for($j=1; $j<=20; $j++) {
echo "<img src='love.png' width='20' height='20'>";
}
echo "<BR>";
}
for($i=1; $i<=10; $i++) {
for($j=1; $j<=5; $j++){
echo "<img src='love.png' width='20' height='20'>";
}
for($j=1; $j<=10; $j++){
echo "<img src='flower.jpg' width='20' height='20'>";
}
for($j=1; $j<=5; $j++){
echo "<img src='love.png' width='20' height='20'>";
}
echo "<BR>";
}
for ($i=1; $i<=5; $i++) {
for($j=1; $j<=20; $j++) {
echo "<img src='love.png' width='20' height='20'>";
}
echo "<BR>";
}
?> |
4-3-3
範例研討:製作表格
吾人可以發現利用
HTML
語言建立表格實在很麻煩,需要一行、接著一個欄位順序規劃,如利用
PHP
迴圈可方便許多。
(A)
網頁功能
– Ex4_9.php
公司期望設計一個通用表格讓各單位使用,規格是:
(1)
10 行、每行
5 個欄位的表格。
(2)
寬 500 pix、每行高度為
30 pix。
![](../MySQL_插圖/chap4/4-11.png)
(B)
製作技巧
如僅利用 HTML
來製作這張圖可能滿繁複的,不滿意要修改也很難。如利用
PHP 可就容易許多了。首先,先觀察
HTML 製作表格的方法,如下:
<table wide=”寬”
height=”高”
border =”線粗”>
<tr> <td>
欄位_1</td><td>
欄位_2</td></tr>
(備注:第一行)
<tr> <td>
欄位_1</td><td>
欄位_2</td></tr>
(備注:第二行)
<tr> <td>
欄位_1</td><td>
欄位_2</td></tr>
(備注:第三行)
…
</table> |
到底需要幾行(<tr>
… </tr>)、每行需要多少欄位(<td>
… </td>,這可利用
PHP
迴圈來達成,如此就可以簡化許多,萬一要改變行數或欄位數,只要變更迴圈的參數即可。
(C)
程式範例
1
2
3
4
5
6
7
8
9
10 |
<?php
echo
" <table width='500' height='120' border='1'>";
for ($i=1; $i<=10; $i++) { //
表格有
10
行
echo "<tr>";
for ($j=1; $j<=5; $j++) { //每行有
5
個欄位
echo "<td height='30'></td>"; //
欄位高
30 pix
}
echo "</tr>";
}
?> |
(D)程式分析:
(1) 第
5 行到第
11 行
for 迴圈是規劃表格的行數。
(2) 第
7 行到第
9 行,for
迴圈是規劃每行的欄位數。
4-3-4
範例研討:製作報價單
(A)
網頁要求
– Ex4_10.php
希望將公司報價單格式統一化,製作一個範本公佈在網路上以供同仁參考,期望格式如下圖,請您幫它製作出來。
![](../MySQL_插圖/chap4/4-12.png)
(B)
製作技巧
首先分析這張報價單的結構,它是由
1 個表頭與
3 個表格所構成,說明如下:
(1)
表格表頭:表格標頭是(<caption>
很堅固公司報價單
</caption>)。
(2)
報價單表頭:是由兩行、每行
4
個欄位所構成。第一行第一個欄位是『客戶名稱:』、第二欄位空白、第三欄位是『報價日期:』、第四欄位空白;第二行也是如此。另外,將此表格的線隱藏
(border=”0”),就看不到表格線了。
(3)
報價單內容:計有
11 行、每行
6 個欄位,只有第一行有輸入文字(項目、品名、、、),其他
10 行都是空白可利用
PHP
的迴圈製作。另外,須規範每行高度、與各個欄位的寬度。
(4)
報價單結尾:只有一行、
2 個欄位,第
1
欄位內容是『總計:』,第 2
欄位是空白,高度與欄位寬度自行調整。
(5)
HTML 與
PHP 語言混合:此範例吾人特地將
HTML 與
PHP 語言混合使用,給讀者了解一般網頁製作技巧大多如此。
(C)
程式範例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 |
<html
xmlns=”http://www.w3.org/1999/xhtml”>
<body>
<table
width=”1000” height=”100” border=”0”>
<caption>
<font size=”6”><u><p>很堅固工程公司
報價單</p></u></font>
</caption>
<tr
height=”50” align=”left”>
<td>客戶名稱:</td><td
width=”400”></td>
<td>報價日期:</td><td
width=”400”></td>
</tr>
<tr
height=”50” align=”left”>
<td>客戶地址:</td><td
width=”400”></td>
<td>客戶電話:</td><td
width=”400”></td>
</tr>
</table>
<table
width=”1000” border=”1”>
<tr
height=”50” align=”center”>
<td width=”50”>項目</td>
<td width=”200”>品
名</td>
<td width=”450”>規
格</td>
<td width=”100”>數
量</td>
<td width=”100”>單
價</td>
<td width=”100”>小
計</td>
</tr>
<?php
for ($i=1; $i<=10; $i++) {
echo “<tr height=’50’>”;
for ($j=1; $j<=6; $j++) {
echo “<td></td>”;
}
echo “</tr>”;
}
?>
</table>
<table
width=”1000” border=”1”>
<tr
height=”50” align=”left”>
<td width=”200”>總計</td>
<td width=”800”></td>
</tr>
</font>
</table>
</body>
</html> |
|