首頁 後端開發 php教程 3.從實例開始_PHP教程

3.從實例開始_PHP教程

Jul 21, 2016 pm 04:08 PM
php 使用 實例 實踐 工具 開始 我們 特點 軟體


3 PHP實務 


PHP的許多特徵與其他軟體或工具有關。利用迄今為止我們所學到的PHP知識,我們可以試著建立一個簡單互動的網站。利用這過程我們又可以學到不少東西。好吧,我們現在開始專注於一個典型個人網站的建立。



3.1 規劃一個網站

一般一個個人網站包括一個歡迎頁面、一個留言本頁面、一個書籤連結頁面、一個計數器、聯絡資訊,甚至還有照片集和一些音樂檔案等等。讓我們從一個標題頁面、一個聯絡資訊頁面和一個履歷頁面開始。我們同樣需要標準的通用的頁面頭部和底部。



標題頁--front.html





這裡我們有一個很簡單的html檔案:





<br><br>我的個人首頁--歡迎<br><br>







我的個人首頁





歡迎








歡迎我的寒舍,雖然這裡現在暫時還沒有什麼。





不過希望馬上就可以多起來。








 


 


 


 


 


Copyright ? 我自己,1999

 










聯絡資訊頁面--count.html



同樣我們又有了一個簡單頁面:





<br><br>我的個人主頁--聯絡資訊<br><br>







我的個人首頁





聯絡資訊








可以透過1-800-PHP -INFO聯絡我








 

Copyright ? 我自己,1999

 



3.2 HTML到PHP從上面你可以看出,每個頁有相同的頭部和底部。像上面那樣每個頁面都寫入相同的資訊在工作量少的時候還可以,但是想像一下當有100多頁面且你需要全部更改其頭部或底部時你要花費多大精力?一頁一頁的手工更改是一件多麼冗長無趣的事情啊!所以我們應該為這些頁面編寫PHP的頭部和底部文件,之後我們只要在每個HTML頁面中引用它們就行了。我們將把這些include檔案放在一個叫做include的子目錄下。下面我們就把這些網站的通用內容寫進文件中。



全站通用變數設定:common.inc



// 全站通用變數

$MyEmail = "phptalk@tnc.org";

$MyEmailLink = "$MyEmail";

$MyMy ";

$MySiteName = $MyName."'s Home Page";

?>



通用頁頭:號header.inc



// 定義通用頁面頭部

?>








<br><br> echo "$MySiteName - $title"; ?><br><br>








 echo "$MySiteName"; ?>





 echo "$title"; ?>








通用頁面底部:footer. inc



// 通用頁面底部

?>






 

Copyright ? by 

 echo "$MyName ($

 










新的頁front.php3:



include("include/common.inc");

$titletle= "Wel = "Wel ;

include("include/header.inc");

?>



歡迎我的寒舍,雖然這裡現在現在暫時還沒有什麼。





不過希望馬上就可以多起來。





include("include/footer.inc");

?>



?>



?>




新的cont.php3:



include("include/common.inc");

$title = "Contact = "Contact 

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)

{

/* 將計數器歸零

這樣如果計數器還未被使用,初始值將是1

這樣如果計數器還未被使用,初始值將是1


當然你也可以把初始值設為20000來騙人咯

*/

$count=0;

// 如果存放計數器檔案已經存在,讀取其中的內容

if ( file_exists($counter_file) ) 

{

$fp=fopen($counter_file,"r");

/ 我們只取了前20位,希望你的網站不要太受歡迎啊

$count=0 fgets($fp,20);

// 由於函數fgets()返回字串,我們可以透過加0的方法將其自動轉換為整數

fclose($fp);

// 對檔案作業完成

}
}

// 增加一次計數值

$count ;

// 將新的計數值寫入檔案

$fp=fopen($counter_file,"w ");

fputs($fp,$count);

fclose($fp);

# 回傳計數值

return ($count );

}

?>

然後我們更改front.php3檔案以顯示這個計數器:



include ("include/counter.inc");

// 我把計數值放在檔案counter.txt中,讀出並輸出

printf ("
d
 
 
n",

get_hitcount("counter.txt"));

include("include/footer.inc") ;
?>看看我們的新front.php33.4 回饋表單3.4 回饋表單讓我們再增加一個回饋表單以便你的瀏覽者填寫並e-mail給你。舉例來說我們用一個很簡單的方法實現它,我們只需要兩個頁面:一個為瀏覽者提供輸入表單;一個獲得表單資料並處理、郵件給你。 PHP中取得表單資料是很簡單的。當表單被傳送後,表單中所包含的各個元素被賦上了對應的值,而這樣就可以像引用一般變數一樣使用了。









在process_form.php3中,變數$mytext就被賦予了輸入的值--非常簡單!同樣的,你可以從列錶框、多選框、單選框、按鈕等表單元素取得變數值。你唯一要做的就是為表單中的每一個元素取名以便將來可以引用。



根據這個方法,我們可以產生一個簡單的包含三個元素的表單:姓名、e-mail地址和留言。當瀏覽者發送表單後,處理該表單的PHP頁面(sendfdbk.php3)讀取數據,檢查姓名是否為空,最後將數據發郵件給你。



表單:form.php3



include("include/common.inc");
$title🎜>$ti = "Feedback";

include("include/header.inc");

?>





SIZE="20" MAXLENGTH="30">

value="Your Email" NAME="email">















include("include/footer.inc");

?>



處理表單:sendfdbk.php3


include("include/common.inc");

$title = "Feedback";

include("include/header。 >
if ( $name == "" ) 

{

// 現在我很討厭匿名的留言!

echo "Duh ? How come you are anonymous?";



elseif ($name == 🎜>
// 這位瀏覽者真是不想透露姓名啊!

echo "Hello ? Your name is supposed to be replaced with

your actual name!";
else 

{

// 輸出一段禮貌的感謝語

echo "

Hello, $name.


Hello, $name.




Thank you for your feedback. It is greatly appreciated.




Than>



Than>



>Thano>
$MyName 


$MyEmailLink

";

// 最後mail出去

mail($MyEmail, "Feedback." ,"

Name : $name

E-mail : $email

Comment : $comment 

");
include("include/footer.inc");

?>



3.5 簡單的站內搜尋引擎



PHP可以呼叫外部程式。在Unix環境下我們可以利用程式grep實作一個簡單的搜尋引擎。我們可以做的稍微複雜一點:使用一個頁面既輸出一個表單供使用者輸入搜尋字符串又輸出查詢結果。



include("include/common.inc");

$title = "Search";

include("include/header .inc");

?>



"POMETHOD="? echo "$PHP_SELF"; ?>"評估

echo "$searchstr"; ?>"

SIZE="20" MAXLENGTH="30LENGTH="30 ">









if ( ! empty($searchstr) ) 

{

// empty()用來檢查查詢字串是否為空

// empty()用來檢查查詢字串是否為空

//如果不為空,請呼叫grep查詢

echo "
n";

// 呼叫grep對所有檔案進行大小寫非敏感模式的查詢

$ cmdstr = "grep -i $searchstr *";

$fp = popen( $cmdstr, "r" ); // 執行指令並輸出管路

// 儲存查詢結果

while( $buffer = fgetss ($fp, 4096)) 

{

// gre出現行數

// 因此我們利用函數split()分離處理資料

list($fname, $fline) = split(":",$buffer, 2);

// 我們只輸出第一次符合的結果

if ( !defined($myresult[$fname]))

$myresult[$fname] = $fline;

}

// 現在我們將結果儲存在陣列中,下面就可以處理並輸出了 

if ( count($myresult) )

if ( count($myresult) )

{

echo "
    n";

    while(list($fname,$fline) = each($myresult))

    echo "
    echo "


  1. $fname : $fline 
  2. n";

    echo "
n";



else 

{

// 如果沒有查詢結果

echo Search."Sorry.

returned no results.
n";

}

pclose($fp);

}






include("include/footer.inc");

?>



?>





註:



PHP_SELF是PHP內建的變數。包含目前檔案名稱。 

fgets()按行讀取文件,最多4096(指定)字元長度。 

fgetss()與fgets()相似,只是解析輸出的HTML標記。 

each()是一個陣列運算函數,用來更方便的遍歷整個陣列。 popen()、pclose()與fopen()、fclose()的功能很相似,只是增加了管道處理。 請注意以上的程式碼並不是實現搜尋引擎的好方法。這只是有助於我們更好地學習PHP而舉出的例子而已。理想的情況是你應該建立一個包含關鍵字的資料庫然後進行搜尋。 http://www.bkjia.com/PHPjc/314675.html
www.bkjia.com
true
http: //www.bkjia.com/PHPjc/314675.htmlTechArticle3PHP實踐PHP的許多特點與其他軟體或工具有關。利用迄今為止我們所學到的PHP知識,我們可以試著建立一個簡單互動的網站。利用這一過...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP的持久相關性:它還活著嗎? PHP的持久相關性:它還活著嗎? Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

debian readdir如何與其他工具集成 debian readdir如何與其他工具集成 Apr 13, 2025 am 09:42 AM

Debian系統中的readdir函數是用於讀取目錄內容的系統調用,常用於C語言編程。本文將介紹如何將readdir與其他工具集成,以增強其功能。方法一:C語言程序與管道結合首先,編寫一個C程序調用readdir函數並輸出結果:#include#include#includeintmain(intargc,char*argv[]){DIR*dir;structdirent*entry;if(argc!=2){

Debian如何提升Hadoop數據處理速度 Debian如何提升Hadoop數據處理速度 Apr 13, 2025 am 11:54 AM

本文探討如何在Debian系統上提升Hadoop數據處理效率。優化策略涵蓋硬件升級、操作系統參數調整、Hadoop配置修改以及高效算法和工具的運用。一、硬件資源強化確保所有節點硬件配置一致,尤其關注CPU、內存和網絡設備性能。選擇高性能硬件組件對於提升整體處理速度至關重要。二、操作系統調優文件描述符和網絡連接數:修改/etc/security/limits.conf文件,增加系統允許同時打開的文件描述符和網絡連接數上限。 JVM參數調整:在hadoop-env.sh文件中調整

PHP行動:現實世界中的示例和應用程序 PHP行動:現實世界中的示例和應用程序 Apr 14, 2025 am 12:19 AM

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

Debian郵件服務器SSL證書安裝方法 Debian郵件服務器SSL證書安裝方法 Apr 13, 2025 am 11:39 AM

在Debian郵件服務器上安裝SSL證書的步驟如下:1.安裝OpenSSL工具包首先,確保你的系統上已經安裝了OpenSSL工具包。如果沒有安裝,可以使用以下命令進行安裝:sudoapt-getupdatesudoapt-getinstallopenssl2.生成私鑰和證書請求接下來,使用OpenSSL生成一個2048位的RSA私鑰和一個證書請求(CSR):openss

PHP:處理數據庫和服務器端邏輯 PHP:處理數據庫和服務器端邏輯 Apr 15, 2025 am 12:15 AM

PHP在數據庫操作和服務器端邏輯處理中使用MySQLi和PDO擴展進行數據庫交互,並通過會話管理等功能處理服務器端邏輯。 1)使用MySQLi或PDO連接數據庫,執行SQL查詢。 2)通過會話管理等功能處理HTTP請求和用戶狀態。 3)使用事務確保數據庫操作的原子性。 4)防止SQL注入,使用異常處理和關閉連接來調試。 5)通過索引和緩存優化性能,編寫可讀性高的代碼並進行錯誤處理。

如何利用Nginx日誌提升網站速度 如何利用Nginx日誌提升網站速度 Apr 13, 2025 am 09:09 AM

網站性能優化離不開對訪問日誌的深入分析。 Nginx日誌記錄了用戶訪問網站的詳細信息,巧妙利用這些數據,可以有效提升網站速度。本文將介紹幾種基於Nginx日誌的網站性能優化方法。一、用戶行為分析與優化通過分析Nginx日誌,我們可以深入了解用戶行為,並據此進行針對性優化:高頻訪問IP識別:找出訪問頻率最高的IP地址,針對這些IP地址優化服務器資源配置,例如增加帶寬或提升特定內容的響應速度。狀態碼分析:分析不同HTTP狀態碼(例如404錯誤)出現的頻率,找出網站導航或內容管理中的問題,並進

See all articles