在面向对象的编程中,任何一个事物都是对象,web页面也不例外。接下来就用PHP创建一个代表web页面的类,使用该类可生成一个HTML页面。
(1)声明属性
一个web页面就是一个HTML文档,应该有标题和内容,这里再加一个meta关键字,有利于搜索引擎搜索到该web页面。所以这个web页面类的属性是标题,内容和关键字。它们都是公共属性。
一个web页面还需要有一个导航栏,所以需要声明一个存放导航栏内容的属性。在这里将属性声明成数组,用数组来存放导航栏的内容。
class page{
public $title = "音乐唱片大全"; //页面标题
publuc $content; //页面内容
public $keywords = "music,音乐,MP3"; //页面关键字
public $daohang = array{ //页面导航数组
'主页'=>'#';
'资源'=>'#';
'关于'=>'#';
'搜索'=>'#';
'联系我们'=>'#';
};
}
(2)定义该类的方法,通过这些类的方法可以生成web页面的各个部分。比如web页面的页头部分,关键字部分,css部分,正文部分,页底部分等等。
(3)实现页头部分
一个页头部分主要显示网站名称和LOGO。在这次实例中我们将这个内容放在表格中,然后在类的方法中用echo输出。
public function DisplayHeader(){
echo "<table width = \"100%\" border=\"1\">";
echo "<tr>";
echo "<td bgcolor =\"#ffffff\">";
echo "<td align =\"left\"><img src =\"#\"></td>";
echo "<h1>音乐唱片大全</h1>";
echo "</td>";
echo "</tr>";
echo "</table>";
}
(4)输出关键字部分
关键字定义在meta标签里
public function DisplayKeywords(){
echo "<meta name=\"keywords\"";
echo $this->keywords;
echo "\" />\r\n";
}
(5)实现其他显示web页面各个部分的类方法与上面类似
最后附上完整代码
display.php这个是包含类的文件
<?php
header("content-type:text/html;charset=utf8");
class page{
public $title = "音乐唱片大全";
public $content;
public $keywords = "MP3,music,唱片";
public $daohang = array('主页'=>'#','资源'=>'#','服务'=>'#','搜索'=>'#','联系我们'=>'#');
public function DisplayTitle(){
echo "<title>";
echo $this->title;
echo "</title>\r\n";
}
public function DisplayContent(){ //输出页面主内容
echo $this->content;
}
public function DisplayKeywords(){ //显示页面关键字
echo "<meta name=\"keywords\"";
echo $this->keywords;
echo "\"/>\r\n";
}
public function DisplayPage(){ //输出整个页面
echo "<html>\r\n<header>";
$this->DisplayTitle();
$this->DisplayCSS();
$this->DisplayKeywords();
echo "</header>\r\n<body>";
$this->DisplayHeader();
$this->DisplayDaohang($this->daohang);
$this->DisplayContent();
$this->DisplayFooter();
echo "</body>\r\n</html>";
}
public function DisplayHeader(){ //输出页头部分
echo "<table width =\"100%\" border=\"1\">";
echo "<tr>";
echo "<td bgcolor =\"#ffffff\">";
echo "<td align =\"left\"><img src =\"#\"></td>";
echo "<h1>音乐唱片大全</h1>";
echo "</td>";
echo "</tr>";
echo "</table>";
}
public function DisplayDaohang($daohang){ //输出导航部分
if(is_array($daohang) && count($daohang)==0){
return;
}
echo "<table width=\"100%\" bgcolor=\"#ffffff\">";
echo "<tr>\n";
//calculate button size
$width = 100/count($daohang);
while(list($name,$url)=each($daohang)){
$this->DisplayButton($width,$name,$url,!$this->IsURLCurrentPage($url));
}
echo "</tr>\n";
echo "</table>\n";
}
public function IsURLCurrentPage($url){
if (strpos($_SERVER['PHP_SELF'], $url)==false) {
return false;
}
else{
return true;
}
}
public function DisplayButton($width,$name,$url,$active=true){ //输出按钮
if($active){
echo "<td width=\"$width%\" align:\"center\">";
echo "<a href =\"$url\">";
echo "<a href =\"$url\"><span class=\"menu\">$name</span></a></tdd>";
}else{
echo "<td width=\"$width%\">";
echo "<img src =\"#\">";
echo "<span class=\"menu\">$name</span></td>";
}
}
public function DisplayCSS(){ //显示css样式
echo "<style>\r\n";
echo "h1{color:#000000;font-size:25px;text-align:center}";
echo ".menu{color:#256114;font-size:12px;text-align:center;font-weight:bold}";
echo "td{bgcolor:#EFEFEF}";
echo "p{color:black;font-size:15px;text-align:center;}";
echo "a:link,a:visited,a:active{color:#256114}";
echo "</style>";
}
public function DisplayFooter(){ //输出页脚部分
echo "<table width = \"100%\" border=\"1\">";
echo "<tr>";
echo "<td>";
echo "<p>版权所有 By Apache/PHP/Mysql</p>";
echo "</td>";
echo "</tr>";
echo "</table>";
}
}
?>
这个是调用display.php的文件
<?php
include("display.php");
$page = new Page();
$page->content="<p>XXXXXXXXXXXXXXXXXXXXXXX</p>";
$page->DisplayPage();
?>
最后呈现结果
-------------------------------------------------------------------
还是主要理解类和对象吧,这样写网页真的好奇怪= = ||