php的許多特點與其他軟體或者工具有關。利用迄今為止我們所學到的php知識,我們可以試著建立乙個簡單互動的**。利用這一過程我們又可以學到不少東西。好吧,我們現在開始專注於乙個典型個人**的建設。
標題頁面--front.html
這裡我們有乙個非常簡單的html檔案:
歡迎來我的寒舍,雖然這裡現在暫時還沒有什麼。
不過我希望馬上就可以多起來。
聯絡資訊頁面--count.html
同樣我們又有了乙個簡單頁面:
你可以通過1-800-php-info聯絡我
3.2 html到php
從上面你可以看出,每個頁面有相同的頭部和底部。像上面那樣每個頁面都寫入相同的資訊在工作量少的時候還可以,但是想象一下當有100多頁面且你需要全部更改其頭部或底部時你要花費多大精力?一頁一頁的手工更改是一件多麼冗長無趣的事情啊!所以我們應該為這些頁面編寫php的頭部和底部檔案,之後我們只要在每個html頁面中引用它們就行了。我們將把這些include檔案放在乙個叫include的子目錄下。下面我們就把這些站點的通用內容寫進檔案中。
全站通用變數設定:common.inc
<?
// 全站通用變數
$myemail = "[email protected]";
$myemaillink = "$myemail";
$myname = "php talk";
$mysitename = $myname."'s home page";
?>
通用頁面頭部:header.inc
<?
// 定義通用頁面頭部
?>
新的頁面front.php3:
<?
include("include/common.inc");
$title = "welcome";
include("include/header.inc");
?>
歡迎來我的寒舍,雖然這裡現在暫時還沒有什麼。
不過我希望馬上就可以多起來。
<?
include("include/footer.inc");
?>
新的cont.php3:
<?
include("include/common.inc");
$title = "contact information";
include("include/header.inc");
?>
你可以通過1-800-php-info聯絡我
<?
include("include/footer.inc");
?>
現在你就可以猜出這樣安排的好處了。如果你想改動頁面的頭部或者底部,你只需要改動相應的檔案就可以了。如果你要修改你的e-mail位址甚至你的名字,只要修改common.inc檔案就行了。另外值得注意的是你可以把具有任何檔名或者副檔名的檔案包含進你的檔案中,你甚至可以包含其他站點上的檔案。
3.3 計數器
讓我們在首頁上加上乙個計數器。這個例子已經被講過多次了,但是還是有利於演示怎樣讀寫檔案以及建立自己的函式。counter.inc包含以下**:
<?
/*|| 乙個簡單的計數器
*/function get_hitcount($counter_file)
// 增加一次計數值
$count++;
// 將新的計數值寫入檔案
$fp=fopen($counter_file,"w");
fputs($fp,$count);
fclose($fp);
# 返回計數值
return ($count);
}?>
然後我們更改front.php3檔案以顯示這個計數器:
<?
include("include/counter.inc");
// 我把計數值放在檔案counter.txt中,讀出並輸出
printf ("%06d
/n",
get_hitcount("counter.txt"));
include("include/footer.inc");
?>
看看我們的新front.php3
3.4 反饋表單
讓我們再新增乙個反饋表單以便你的瀏覽者填寫並e-mail給你。舉例來說我們用一種很簡單的方法實現它,我們只需要兩個頁面:乙個為瀏覽者提供輸入表單;乙個獲得表單資料並處理、mail給你。
php中獲取表單資料是很簡單的。當乙個表單被傳送後,表單中所包含的各個元素被賦上了相應的值,而這樣就可以像引用一般變數一樣使用了。
在process_form.php3中,變數$mytext就被賦予了輸入的值--非常簡單!同樣的,你可以從列表框、多選框、單選框、按鈕等表單元素中取得變數值。你唯一要做的就是為表單中的每乙個元素取名以便將來可以引用。
表單:form.php3
<?
include("include/common.inc");
$title = "feedback";
include("include/header.inc");
?>
<?
include("include/footer.inc");
?>
3.5 簡單的站內搜尋引擎
php可以呼叫外部程式。在unix環境下我們可以利用程式grep實現乙個簡單的搜尋引擎。我們可以做的稍微複雜一些:使用乙個頁面既輸出乙個表單供使用者輸入搜尋字串又輸出查詢結果。
<?
include("include/common.inc");
$title = "search";
include("include/header.inc");
?>
<?
if ( ! empty($searchstr) )
// 現在我們將結果儲存在陣列中,下面就可以處理並輸出了
if ( count($myresult) )
else
pclose($fp);
}?>
<?
include("include/footer.inc");
?>
注釋:php_self是php內建的變數。包含當前檔名。
fgets()按行讀取檔案,最多4096(指定)字元長度。
fgetss()與fgets()相似,只是解析輸出的html標記。
split()有乙個引數是2,因為我們只需要把輸出分成兩部分。另外需要省略":"。
each()是乙個陣列操作函式,用來更方便的遍歷整個陣列。
popen()、pclose()與fopen()、fclose()的功能很相似,只是增加了管道處理。
請注意以上的**並不是實現乙個搜尋引擎的好辦法。這只是有助於我們更好學習php而舉出的乙個例子而已。理想的情況是你應該建立乙個包含關鍵字的資料庫然後進行搜尋。
PHP新手上路(六)
5.5 計數器 乙個簡單的計數器 function get hitcount counter file 增加一次計數值 count 將新的計數值寫入檔案 fp fopen counter file,w fputs fp,count fclose fp 返回計數值 return count 然後我們更...
PHP新手上路(八)
7.檔案上傳 你可以利用php實現檔案的上傳功能,注意客戶端的瀏覽器應該是netscape3以上或者ie3以上的版本。同時,因為本程式與你的php配置檔案 php3為php3.ini,php4為php.in 設定有關。在執行該程式之前請先檢查您的php配置檔案有沒有做好如下的設定 將 upload ...
PHP新手上路(十三)
12.php資源 你可以通過web上的眾多資源更多的了解php3。許多郵件列表和書籍對你都非常有用。12.1 站點 國內 http www.phpuser.com php中文使用者,也就是這裡了 http www.phpx.com 中國php聯盟 http www.phpsite.net php專門...