柔情似水 发表于 2015-2-4 00:13:07

PHP教程之浅淡PHP生成HTML的思绪

在学习中,我也一直这样要求着自己。生成html   媒介:
  今朝收集上很多多少网站的旧事宣布体系都采取了静态办事器手艺生成静态HTML的做法,如许做的优点是:一是能加重其办事器的承当,二是由于生成了HTML静态页面,所以其网站被搜刮引擎搜刮到的机率更大一些。笔者的网站已经利用PHP这一静态手艺来构建旧事宣布体系,其道理也就是使用了PHP生成HTML静态页面的手艺,相干平台是 Windows XP Sp2+php4.32+mysql,因而,在这里,想复杂地谈一下这类做法的思绪。这篇文章合适于对PHP+MYSQL数据库操作,SQL语句和网页设计有点基本的伴侣,假如您是一个从头入手下手学的伴侣,那末请先打好基本吧!到这里就不必往下看了。假如您都合适上述前提的话,那末祝贺您,请接着往下看。然而,在详细下手构建之前,您还要做好以下几点筹办任务。
1、 具有当地调试PHP的功效
  在WINDOWS XP操作体系下,笔者建议你可以到网高低载一个PHP+MYSQL+APHCHE的办事器套装,如华军软件园,去那边搜刮一下就能够下载到。下载完后默许装置便可,如许您就具有了在当地测试PHP的功效了,省去了良多手动设置装备摆设的费事,怎样,复杂吧,OK,这仅仅只是第一步。
2、 构想旧事宣布体系所具有的功效
  首页的旧事宣布常常是经由过程后台更新的,后台的更新不过是由添加、编纂、删除数据等根基的功效所完成的。在这里,你可使用网页设计软件来构建你的想要的后台界面,其功效的完成固然是要用到PHP喽。这一步建议您先想好旧事宣布体系要有的功效。在这里,若何用PHP添加、编纂、删除数据就不再反复,由于重点是若何在这基本上生成静态手艺。
<?php
require_once(“conn.php”); //援用conn.php,毗连数据库
$title=$_POST[“title”];
$content=$_POST[“content”]; //取得表单变量
//以下创立一文本文档,其值主动计数
$countfile="count.txt";
if(!file_exists($countfile))
{
fopen($countfile,"w"); //假如此文件不存在,则主动创立一个
}
$fp=fopen($countfile,"r");
$num=fgets($fp,20);
$num=$num+1; //每次其值主动加一
fclose($fp);
$fp=fopen($countfile,"w");
fwrite($fp,$num); //更新其值
fclose($fp);

//使用下面主动计数的值取得HTML的途径$path
$houzui=”.html”;
$path=$num.$houzui;
//如许构成的途径是主动增加的,如1.html,2.html,3.html……….添加一条旧事便主动加上1
//以下用SQL语句添加数据至表 news
$sql=”insert into news (title,content,path) values (‘”.$title.”’,’”.$content.”’,’”.$path.”’)”;
$query=mysql_query($sql);

//以下为关头的地方,把从表单取得的数据交换模板中的{title},{content}标志   $fp=fopen(“model.htm”,”r”) //只读翻开模板
$str=fread($fp,filesize(“mode.htm”));//读取模板中内容
$str=str_replace(“{title}”,$title,$str);
$str=str_replace(“{content}”,$content,$str);//交换内容
fclose($fp);
$handle=fopen($path,”w”); //写入体例翻开旧事途径
fwrite($handle,$str); //把方才交换的内容写进生成的HTML文件
fclose($handle);

代码拷贝框
$fp=fopen(“model.htm”,”r”) //只读翻开模板
$str=fread($fp,filesize(“mode.htm”));//读取模板中内容
$str=str_replace(“{title}”,$title,$str);
$str=str_replace(“{content}”,$content,$str);//交换内容
fclose($fp);
$handle=fopen($path,”w”); //写入体例翻开旧事途径
fwrite($handle,$str); //把方才交换的内容写进生成的HTML文件
fclose($handle);


//扫尾任务:
echo “<a href=$path target=_blank>检查方才添加的旧事</a>”;

代码拷贝框
echo “<a href=$path target=_blank>检查方才添加的旧事</a>”;

OK,全部生成HTML的示例源码就到这里,其关头是用了交换的办法。
$str=str_replace(“{被交换的内容}”,$交换的内容,$str);
因而,总结一下以上的做法:先设计好旧事模板,把需求被交换的内容用{ }放到模板中响应的地位,然后设计表单,再是最初的表单处置法式,把从表单中获得的变量交换模板中响应的内容便可,如许每次城市生成分歧的HTML;假如需求修正HTML的内容也是一样的,取得修正后的表单内容后,先用 update 语句更新数据库,再从头交换一下模板中的内容便可;删除的话,先delete表中要删除的内容,再用unlink($path) 来删除HTML的物理文件便可。

大家如果能懂得“熟能生巧”的道理也就明白了这并不是浪费时间,同时这也可以减轻板主的负担,让他们有时间去处理更难的问题。

兰色精灵 发表于 2015-2-4 09:57:35

其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎

若相依 发表于 2015-2-9 22:00:57

,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。

不帅 发表于 2015-2-10 06:44:20

个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。

再见西城 发表于 2015-2-10 07:58:11

实践是检验自己会不会的真理。

柔情似水 发表于 2015-2-13 04:47:51

有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。

活着的死人 发表于 2015-2-20 23:59:39

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

蒙在股里 发表于 2015-3-6 19:15:17

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

飘飘悠悠 发表于 2015-3-7 09:29:49

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

因胸联盟 发表于 2015-3-9 20:04:42

,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。

冷月葬花魂 发表于 2015-3-11 15:13:57

做为1门年轻的语言,php一直很努力。

分手快乐 发表于 2015-3-14 12:15:34

当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,

小女巫 发表于 2015-3-15 23:10:21

php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)

愤怒的大鸟 发表于 2015-3-18 18:14:50

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

爱飞 发表于 2015-3-26 07:36:51

php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)

老尸 发表于 2015-3-27 03:08:25

兴趣是最好的老师,百度是最好的词典。

若天明 发表于 2015-3-29 22:06:12

写的比较杂,因为我也是个新手,不当至于大家多多指正。

莫相离 发表于 2015-4-4 09:47:13

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

第二个灵魂 发表于 2015-4-18 00:47:01

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

乐观 发表于 2015-4-21 02:20:31

先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
页: [1] 2
查看完整版本: PHP教程之浅淡PHP生成HTML的思绪