
make_page() 需要兩個參數 (parameter) $main 與 $display ,其中建立一個字串 (string) ,最後回傳這個字串
function make_page($main, $display) {
$page = "
<html>
<head>
<title>Encode Software</title>
<link rel='stylesheet' href='encryptor.css'>
</head>
<body>
<div class='menu'>
<a href='{$_SERVER['PHP_SELF']}'>Home</a> -
<a href='{$_SERVER['PHP_SELF']}?op=record'>Record</a> -
<a href='{$_SERVER['PHP_SELF']}?op=about'>About</a>
</div>
<div class='main'>
$main
</div>
<div class='display'>
$display
</div>
</body>
</html>";
return $page;
}第一個參數 $main 依不同選單提供第二個區塊的內容,第二個參數 $display 依按鈕及選單顯示結果與提示訊息。
這裡須留意一點,選單網址原本用 echo
<a href="<?PHP echo $_SERVER['PHP_SELF']; ?>">Home</a> - <a href="<?PHP echo $_SERVER['PHP_SELF'].'?op=record'; ?>">Record</a> - <a href="<?PHP echo $_SERVER['PHP_SELF'].'?op=about'; ?>">About</a>
這裡已經改成大括弧了
<a href='{$_SERVER['PHP_SELF']}'>Home</a> -
<a href='{$_SERVER['PHP_SELF']}?op=record'>Record</a> -
<a href='{$_SERVER['PHP_SELF']}?op=about'>About</a>因為寫在 HTML 語法裡,必須用 echo 使變數變成字串輸出,而 PHP 字串裡用大括弧即可。
在編碼、解碼頁,也就是選單的 Home 頁, $main 的內容由 input_form() 提供。 input_form() 如下
function input_form() {
$main = "
<form action='{$_SERVER['PHP_SELF']}' method='post'>
<input type='text' name='input' size='67'><br / >
<input type='submit' value='New' name='op'>
<input type='submit' value='Load' name='op'>
<input type='submit' value='Encode' name='op'>
<input type='submit' value='Decode' name='op'>
<input type='submit' value='Clean' name='op'>
</form>";
return $main;
}同樣的, input_form() 建立字串也回傳所建立的字串。
我們把 make_page() 與 input_form() 放在整理函數的 encryptor_function.php 裡, include 進來就可以用囉!
完整程式檔案請參考 encryptor_function.php 。
這樣一來,我們把 encryptor02.php 修改成只有 switch 加 make_page()
<?php
// include
include "encryptor_function.php";
// switch
switch ($_REQUEST["op"]) {
case "New":
$main = input_form();
$display = "There is <b>New</b> button.";
break;
case "Load":
$main = input_form();
$display = "There is <b>Load</b> button.";
break;
case "Encode":
$main = input_form();
$display = "There is <b>Encode</b> button. Your input is '{$_POST['input']}'.";
break;
case "Decode":
$main = input_form();
$display = "There is <b>Decode</b> button. Your input is '{$_POST['input']}'.";
break;
case "Clean":
$main = input_form();
$display = "There is <b>Clean</b> button.";
break;
case "record":
$main = "This is record page..";
$display = "This is record page..";
break;
case "about":
$main = "This is about page..";
$display = "This is about page..";
break;
default:
$main = input_form();
$display = "something happened";
}
// make page
echo make_page($main, $display);
/* 《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:encryptor03.php
功能:示範 PHP 程式
作者:張凱慶
時間:西元 2012 年 11 月 */
?>結果如下

接下來要開始整合建立 Encrypt 物件 (object) 的功能了,使用者按下 New 後伺服器雖然新增一個 Encrypt ,可是只存在於伺服端的那一下子,等到 Encode 的時候,剛才新增的 Encrypt 卻不見了說。這個問題在於客戶端與伺服端是分開執行的,因此我們要先學會儲存 Encrypt 物件。
| 中英文術語對照 | |
|---|---|
| 函數 | function |
| 參數 | parameter |
| 字串 | string |
| 物件 | object |
您可以繼續參考
網站篇
相關目錄
回 PHP 入門指南
回 PHP 教材
回首頁
參考資料
http://www.php.net/manual/en/tutorial.firstpage.php
http://www.php.net/manual/en/tutorial.useful.php
http://www.php.net/manual/en/functions.user-defined.php
http://www.php.net/manual/en/functions.arguments.php
http://www.php.net/manual/en/functions.returning-values.php
沒有留言:
張貼留言