php 利用数据库信息生成静态页面实例代码

 更新时间:2016年11月25日 15:54  点击:1605
这是一款用户自己写的php生成html页面的代码,简单实用比较适合初学者,如果你正在学习php生成静态文件,这一个实例从数据库到php到模板文件都一步步的很清楚哦。
 代码如下 复制代码

$con=mysql教程_connect("localhost","root","")or die("链接错误!!!");
mysql_select_db("message",$con)or die("数据库链接错误!!!");
mysql_query("set names 'gbk'");
$sql=mysql_query("select * from message");

if($_post[button]){
while($row=mysql_fetch_array($sql)){
$path=$row[0].'.html';
$user=$row[1];
$title=$row[2];
$content=$row[3];
$date=$row[4];

$fp=fopen("moban/html.html","r");
$str=fread($fp,filesize("./moban/html.html"));
$str=str_replace("{user}",$user,$str);
$str=str_replace("{title}",$title,$str);
$str=str_replace("{content}",$content,$str);
$str=str_replace("{date}",$date,$str);
fclose($fp);

$handle=fopen("news/".$path,"w");
fwrite($handle,$str);
fclose($handle);
echo "<script>alert('生成成功!!!');window.location.href='html.php';</script>";
}
}
?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <label>
  <input type="submit" name="button" id="button" value="生成静态页面" />
  </label>
</form>
</body>
</html>

模板文件代码

 代码如下 复制代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.111cn.net/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<table width="500">
  <tr>
    <td width="80"><div align="right">名称:</div></td>
    <td width="408"><div align="left">{user}</div></td>
  </tr>
  <tr>
    <td><div align="right">标题:</div></td>
    <td><div align="left">{title}</div></td>
  </tr>
  <tr>
    <td><div align="right">内容:</div></td>
    <td><div align="left">{content}</div></td>
  </tr>
  <tr>
    <td><div align="right">日期:</div></td>
    <td><div align="left">{date}</div></td>
  </tr>
  <tr>
    <td><div align="right"></div></td>
    <td><div align="left"></div></td>
  </tr>
</table>
</body>

删除html代码

 代码如下 复制代码

<?php
$con=mysql_connect("localhost","root","")or die("链接错误!!!");
mysql_select_db("message",$con)or die("数据库链接错误!!!");
mysql_query("set names 'gbk'");
$sql=mysql_query("select * from message");

if($_post[button]){
while($row=mysql_fetch_array($sql)){
$path=$row[0].'.html';

 
  if(@unlink("news/".$path)){
  echo "<script>alert('删除成功!!!');window.location.href='unlink_html.php';</script>";
  }else{
  echo "<script>alert('无内容可以删除!!!');window.location.href='unlink_html.php';</script>";
  }
  }
}
?>
<form id="form1" name="form1" method="post" action="">
  <label>
  <input type="submit" name="button" id="button" value="删除静态页面" />
  </label>
</form>

//数据库结构,用phpmyadmin导入就行了

 表的结构 `message`
--

create table `message` (
  `id` int(4) not null auto_increment,
  `user` varchar(20) not null,
  `title` varchar(100) not null,
  `content` text not null,
  `date` date not null,
  primary key  (`id`)
) engine=myisam  default charset=gbk auto_increment=3 ;

--
-- 导出表中的数据 `message`
--

insert into `message` (`id`, `user`, `title`, `content`, `date`) values
(1, 'dfkk', '数据库信息生成静态页面', 'www.111cn.net', '2010-02-12'),
(2, 'dfkk', '数据库信息生成静态页面', '原理很简单', '2010-02-12');


自己写的,可通过按钮生成静态页面和删除已生成的静态页面。

moban存放模板文件夹(勿删)。

news生成静态页面文件夹(勿删)。


注意事项:phpmyadmin工具导入数据库文件message.sql。

图片上传一般都是直接上传了,现在我们写的一款php 图片上传代码,可以在图片预览效果,这样可以方便查看你上传图片的效果哦。
 代码如下 复制代码
<script language="网页特效" type="text/网页特效" >
//上传大图片显示
 function showuploadpic(uploadpic)
  {
   if(uploadpic.value!="")
   {
    document.getelementbyid('preview').src=uploadpic.value;
    }
   
   }
 
 //上传小图片显示
 function showuploadpics(uploadpic)
  {
   if(uploadpic.value!="")
   {
    document.getelementbyid('previews').src=uploadpic.value;
    }
   
   }
   
   
 //上传flash图片
 function showuploadflash(uploadpic)
 {
  if(uploadpic.value!="")
  {
   document.getelementbyid('preview').src=uploadpic.value;
   }
  
  
  }
</script>
<form action="up.php?act=add" method="post" enctype="multipart/form-data">
<input type="file" name="flashpic"  id="flashpic" onchange="showuploadpic(this)"/><img src="" width="100" height="100" id="preview"/><br />
<input type="file" name="flashpics"  id="flashpics" onchange="showuploadpics(this)"/>
<img src=""  width="100" height="100" id="previews"/>
<input name="" type="submit" value="添加" />
</form>
<?php
 //require_once("class/uploadfile.class.php");
 if($_request['act']=='add'){
 $maximg=$_files['flashpic'];
 $minimg=$_files['flashpics'];
 $upload=new uploadfile;
 $fmaxpath="no_picture.gif";
 $fminpath="no_picture.gif";
 if(!empty($maximg['tmp_name']))
 {
 $fmaxpath=$upload->upload($maximg,'upfiles/');
 
 }
 if(!empty($minimg['tmp_name']))
 {
 $fminpath=$upload->upload($minimg,'upfiles/');
 }
 }
?>
 代码如下 复制代码
if(!isset($_get[absolutepage])){
        $absolutepage=1;//当前页
       }
       if ($_get[absolutepage]==0){
        $absolutepage=1;
       }else {
        $absolutepage=$_get[absolutepage];
        $absolutepage=intval($absolutepage);
        }
       $pagesize=5;//一页现实的数量
       $a= (($absolutepage - 1) * $pagesize);
       $sql1=$sql."  limit $a,$pagesize ";
     
       $nums=mysql教程_num_rows($query);//总数
       $pagecount = (int)(($nums - 1) / $pagesize) + 1;//总页数
       if ($absolutepage>1 && $nums>1){
           $prevpage=$absolutepage-1;
       }
       if ($absolutepage>=1 && $absolutepage<$pagecount){
        $nextpage=$absolutepage+1;
       }
       if ($absolutepage > $pagecount) {
        $absolutepage = $pagecount;
       }
    $prevpage="<a href='".(strpos($_server['request_uri'],'?') ? "{$_server['request_uri']}&" : '?')."absolutepage=$prevpage'>上一页</a>";
$nextpage="<a href='".(strpos($_server['request_uri'],'?') ? "{$_server['request_uri']}&" : '?')."absolutepage=$nextpage'>下一页</a>";

在php中不支持多重继承,如果我们向使用多个类的方法而实现代码重用有什么办法么?那就是组合。在一个类中去将另外一个类设置成属性。

下面的例子,模拟了多重继承。

view sourceprint?01 <? 

02 class user { 

03     private $name = "tom"; 

04     public function getname(){ 

05         return $this->name; 

06     } 

07 } 

08 class teacher{ 

09     private $lengthofservice = 5; // 工龄  

10     public function getlengthofservice(){ 

11         return $this->lengthofservice; 

12     } 

13 } 

14 // 上面的类中的set方法就不写了. 

15 // 如果有个研究生,既是学生也算工龄.  

16 class graduatestudent extends user { 

17     private $teacher ; 

18     public function __construct(){ 

19         $this->teacher = new teacher();       

20     }    

21     public function getlengthofservice(){ 

22         return $this->teacher->getlengthofservice(); 

23     } 

24 } 

25 $graduatestudent = new graduatestudent(); 

26 echo "name is ".$graduatestudent->getname()."<br>"; 

27 echo "lengthofservice is ".$graduatestudent->getlengthofservice(); 

28   

29 ?> 

 

 代码如下 复制代码

$ss = "<a href='1.gif'>d</a>adfxx<a href="dir.html">dir</a>";

print_r(gethref($ss));
   
function gethref($temp){
        preg_match_all('/<a.*?(?: |\t|\r|\n)?href=['"]?(.+?)['"]?(?:(?: |\t|\r|\n)+.*?)?>(.+?)</a.*?>/sim',$temp,$a);
        return $a[1];
    }


//下面所有a连接

 代码如下 复制代码

$htm = preg_replace( "@<a(.*?)</a>@is","$1",$ss);
print_r($htm);


//比较全的提取url连接地址

 

 代码如下 复制代码
 $url="http://www.111cn.net";
 $html=file_get_contents($url,"r");
 preg_match_all ("/(<a)(.*)(href=)([^>]*)(>)([^<]*)(<)([^>]*)(>)/", $html, $matches);
 for ($i=0;$i<count($matches[0]);$i++)
 {
  echo "|||".$matches[2][$i]."||".$matches[3][$i].$matches[4][$i]."||".$matches[6][$i]."||".$matches[8][$i]."<br>";
 }

//提取文章字符串中所有链接地址

 代码如下 复制代码
preg_match_all('/(?<=href=")[wd.:/]*/',$str,$fstr);
[!--infotagslink--]

相关文章

  • PHP 数据库缓存Memcache操作类

    操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Intellij IDEA连接Navicat数据库的方法

    这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
  • 在数据库里将毫秒转换成date格式的方法

    在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 如何解决局域网内mysql数据库连接慢

    通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
  • MySQL快速复制数据库数据表的方法

    某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
  • mysqldump命令导入导出数据库方法与实例汇总

    mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
  • Mysql数据库错误代码中文详细说明

    1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
  • php二维码生成

    本文介绍两种使用 php 生成二维码的方法。 (1)利用google生成二维码的开放接口,代码如下: /** * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 * @param strin...2015-10-21
  • Java生成随机姓名、性别和年龄的实现示例

    这篇文章主要介绍了Java生成随机姓名、性别和年龄的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-01
  • c#异步读取数据库与异步更新ui的代码实现

    这篇文章主要介绍了c#从数据库里取得数据并异步更新ui的方法,大家参考使用吧...2020-06-25
  • Yii2.0高级框架数据库增删改查的一些操作

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作。 User::find()->all(); //返回所有用户数据; User::findOne($id); //返回 主键...2015-11-24
  • C#生成随机数功能示例

    这篇文章主要介绍了C#生成随机数功能,涉及C#数学运算与字符串操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • MYSQL数据库使用UTF-8中文编码乱码的解决办法

    1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: 复制代码 代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创...2015-10-21
  • php生成唯一数字id的方法汇总

    关于生成唯一数字ID的问题,是不是需要使用rand生成一个随机数,然后去数据库查询是否有这个数呢?感觉这样的话有点费时间,有没有其他方法呢?当然不是,其实有两种方法可以解决。 1. 如果你只用php而不用数据库的话,那时间戳+随...2015-11-24
  • node.js如何操作MySQL数据库

    这篇文章主要介绍了node.js如何操作MySQL数据库,帮助大家更好的进行web开发,感兴趣的朋友可以了解下...2020-10-29
  • springBoot 项目排除数据库启动方式

    这篇文章主要介绍了springBoot 项目排除数据库启动方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-10
  • Linux 下使用shell脚本定时维护数据库的案例

    这篇文章主要介绍了Linux 下使用shell脚本定时维护数据库,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11