Ⅰ php如何生成HTML页
<?php //在你的开始处加入 ob_start(); ob_start(); //以下是你的代码 //以下是你的代码 ……. //在结尾加入 ob_end_clean(),并把本页输出到一个变量中 //在结尾加入 ob_end_clean(),并把本页输出到一个变量中 $temp = ob_get_contents(); ob_end_clean(); //写入文件 //写入文件 $fp = fopen('文件名','w'); fwrite($fp,$temp) or die('写文件错误'); ?> OUTPUT CONTROL 函数解释…….OUTPUT CONTROL 函数1、Flush:刷新缓冲区的内容,输出。 函数格式:flush() 说明:这个函数经常使用,效率很高。 2、ob_start :打开输出缓冲区 函数格式:void ob_start(void) 说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。 3 、ob_get_contents :返回内部缓冲区的内容。 使用方法:string ob_get_contents(void) 说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE 。 4、ob_get_length:返回内部缓冲区的长度。 使用方法:int ob_get_length(void) 说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活。则返回 FALSE。 5、ob_end_flush :发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区。 使用方法:void ob_end_flush(void) 说明:这个函数发送输出缓冲区的内容(如果有的话)。 6、ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区 使用方法:void ob_end_clean(void) 说明:这个函数不会输出内部缓冲区的内容而是把它删除! 7、ob_implicit_flush:打开或关闭绝对刷新 使用方法:void ob_implicit_flush ([int flag]) 说明:使用过Perl的人都知道$|=x的意义,这个字符串可以打开/关闭缓冲区,而ob_implicit_flush函数也和那个一样,默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush() 读写文件操作嘛!!另外补充一下:$url_=$date.".html";$tmpfname = tempnam( "/", "xnml" );($tmpfname, "html_files/".$url_);chmod("../".$url_, 0755 );一般而言,只是把内容标题作者发布时间等生成HTML,如果还要显示阅读次数,相关文章等动态信息,可以用JS调用PHP实现
Ⅱ php如何生成html文件
大概的思路是,准备三个文件1.你要录入的表单页面2.你要生成的模板文件,就版如你给出的代码,作为权模板3.验证执行文件,这个文件先读取模板,然后把你提交的表单数据载入模板,生成HTML具体的我发到你邮箱去吧~~~记得采纳为最佳答案~~~
Ⅲ PHP如何生成HTML的思路
一、 具备本地调试PHP的功能
在WINDOWS XP操作系统下,笔者建议你可以到网上下载一个PHP+MYSQL+APHCHE的服务器套装,如华军软件园,去那里搜索一下就可以下载到。下载完后默认安装即可,这样您就具备了在本地测试PHP的功能了,省去了很多手动配置的麻烦,怎么样,简单吧,OK,这仅仅只是第一步。
二、 构思新闻发布系统所具备的功能
首页的新闻发布往往是通过后台更新的,后台的更新无非是由添加、编辑、删除数据等基本的功能所实现的。在这里,你可以使用网页设计软件来构建你的想要的后台界面,其功能的实现当然是要用到PHP喽。这一步建议您先想好新闻发布系统要有的功能。在这里,如何用PHP添加、编辑、删除数据就不再重复,因为重点是如何在这基础上生成静态技术。
三、 PHP生成HTML的技术原理。
哈哈。费话说了那么多,终于到了该讲的地方了。其实,这一原理并不复杂,综合地来讲的话,应该是PHP中一个替换数据语法的应用。OK,讲一个简单范例吧,一步一步地分析!相信聪明的你能看得明白的咯,仔细看好每一步即可,在这里,只是引导大家如何做而已,具体的可以实践一下!
(1)在MYSQL里新建一数据库,命名为 database (可自定义),新建一表,命名为 news(因为是新闻发布嘛,取个好记的名字即可,可自定义),然后建立这几个字段名:id (自动递增,这是关键,类型:INT)title (顾名思义,新闻标题,类型可取 TEXT)content (新闻内容,类型可取 TEXT)path (HTML文件路径,类型可取 TEXT)
(2)建立 conn.php这是连接数据库的PHP文件,你可以把连接数据的语句单独放在这一文件里,以后多个需要连接数据库的文件直接引用这个文件即可。
(3)设计添加新闻的表格 add.form 简单的源代码如下:
12345<form method=”post” action=”add.php”> //提交至 add.php新闻标题:<input type=”text” name=”title” size=”20”><br>新闻内容:<textarea name=”content” cols=”10” rows=”25”></textarea><br><input type=”submit” name=”提交”></form>
(4)建立一个 HTML 的模板,另存为model.htm,和 add.php可以在同一目录下。示例源代码:
123456<html><body>此新闻的标题:{title}此新闻的内容:{content}</body></html>
{ }大括号内的内容即是要被替换的内容,整个静态模板的设计可以根据自己的思路,但{ }内被替换的内容必须包含在内,如上面的{title},{content};咔咔~简单地说,设计好一个很好看的新闻模板后,把要被替换的如{title},{content}等标记放到需要的地方就可以了撒。
(5)详解 add.php 源码
041424344<?phprequire_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);//收尾工作:echo “<a href=$path target=_blank>查看刚才添加的新闻</a>”;?>
OK,整个生成HTML的示例源码就到这里,其关键是用了替换的方法。$str=str_replace(“{被替换的内容}”,$替换的内容,$str);因此,总结一下以上的做法:先设计好新闻模板,把需要被替换的内容用{ }放到模板中相应的位置,然后设计表单,再是最后的表单处理程序,把从表单中获取的变量替换模板中相应的内容即可,这样每次都会生成不同的HTML;如果需要修改HTML的内容也是一样的,获得修改后的表单内容后,先用 update 语句更新数据库,再重新替换一下模板中的内容即可;删除的话,先delete表中要删除的内容,再用unlink($path) 来删除HTML的物理文件即可。
Ⅳ php怎么生成html静态首页文件
两种方法简单说明如下:一, 利用PHP的输出控制函数(Output Control)得到静态页面字符串,再写入到新的文件中。使用说明:1、实例化代码如下 $cache = new Cache();2、设置缓存时间和缓存目录$cache = new Cache(60, '/any_other_path/');第一个参数是缓存秒数,第二个参数是缓存路径,根据需要配置。默认情况下,缓存时间是 3600 秒,缓存目录是 cache/3、读取缓存代码如下 $value = $cache->get('data_key');4、写入缓存$value = $cache->put('data_key', 'data_value');完整实例:$cache = new Cache();//从缓存从读取键值 $key 的数据$values = $cache->get($key);//如果没有缓存数据if ($values == false) { //insert code here… //写入键值 $key 的数据 $cache->put($key, $values);} else { //insert code here…}Cache.class.php<?phpclass Cache { private $cache_path;//path for the cache private $cache_expire;//seconds that the cache expires //cache constructor, optional expiring time and cache path public function Cache($exp_time=3600,$path="cache/"){ $this->cache_expire=$exp_time; $this->cache_path=$path; } //returns the filename for the cache private function fileName($key){ return $this->cache_path.md5($key); } //creates new cache files with the given data, $key== name of the cache, data the info/values to store public function put($key, $data){ $values = serialize($data); $filename = $this->fileName($key); $file = fopen($filename, 'w'); if ($file){//able to create the file fwrite($file, $values); fclose($file); } else return false; } //returns cache for the given key public function get($key){ $filename = $this->fileName($key); if (!file_exists($filename) || !is_readable($filename)){//can't read the cache return false; } if ( time() < (filemtime($filename) + $this->cache_expire) ) {//cache for the key not expired $file = fopen($filename, "r");// read data file if ($file){//able to open the file $data = fread($file, filesize($filename)); fclose($file); return unserialize($data);//return the values } else return false; } else return false;//was expired you need to create new }}?>二, 利用模板生成如果使用过Dreamwerver中的“另存为模板”就应该知道模板是用来统一风格的东西。只修改页面的某一部分,当然这“某一部分”是自己来确定的。本文在这说的模板也就是这个意思。把模板的概念结合本文再说得具体一点就是:美工先做好一个页面,然后把这个页面当作模板,把这个模板中我们需要改变的地方用一个与HTML可以区分的字符代替,如“{title}”“、[title]”。在生成静态页面的时候只需要把数据和这些字符串替换即可。这就是模板的含义了。步骤:1.新建一个php页面和一个html页面[模板页];注:如果是从数据库调用数据,则将数据以数组的形式保存,然后循环生成;2.在php页面,打开html页面->读取html页面的内容->替换参数->新建(打开)一个新的html页面->将替换的内容写入新文件中->关闭新文件->生成成功;代码如下:$open = fopen("template.htm","r"); //打开模板文件$content = fread($open,filesize("template.htm")); //读取模板文件内容//print_r($content);$content = str_replace("{title}","测试标题",$content);//替换$content = str_replace("{contents}","测试内容",$content);$newtemp = fopen("1.htm","w");//生成,用写入方式打开一个不存在(新)的页面fwrite($newtemp,$content);//将刚刚替换的内容写入新文件中fclose($newtemp);echo "生成";php批量生成html测试:代码如下://假设从数据库中调的数据存放在二维数组$arr中$arr = array(array("新闻标题一","新闻内容一"),array("新闻标题二","新闻内容二")); foreach($arr as $key=>$value){ $title = $value[0]; $contents = $value[1]; //echo $title.''.$contents.''; $path = $key.'.html'; $open = fopen("template.htm","r"); //打开模板文件 $handle = fread($open,filesize("template.htm")); //读取模板文件内容 $content = str_replace("{title}",$title,$handle);//替换 $content = str_replace("{contents}",$contents,$handle); $newtemp = fopen($path,"w");//用写入方式打开一个不存在(新)的页面 fwrite($newtemp,$content);//将刚刚替换的内容写入新文件中 fclose($newtemp); echo "生成";}
Ⅳ php如何生成HTML页面 要详细的生成过程代码
很简单,用ob_start压制,然来后保源存到一个html页面就可以了,写了个小演示访问时在后面加参数 ?id=xxx xxx为任意数字,你把里面的输出换成你的动态页面就可以了,代码里有解释<?phpob_start();/*下面的内容就是你原来的动态页面*/$id=isset($_GET["id"])?$_GET["id"]:'';if ($id!=''){ echo "原使用参数的页面 参数为".$id."</br>已生成<a href=\"$id.html\">$id.html</a>"; }/*结束*/$info=ob_get_contents();$file=fopen($id.'.html','w');fwrite($file,$info);fclose($file);?>
Ⅵ php网页转html网页怎么弄
虽然不能保证把每个动态页面都转化为静态的html文件,但如果网站是驻留在apache服务器上,则只需一个简单的小脚本就可以把大多数动态页面都转换成html文件。确定需要转换成后缀为html的php文件目标是那些名下包含动态子页较多的网页。以“index.php?category=x”为例,我们需要对“index.php”之后的动态子页进行转换。 例如,如果网站里有一个名为“arts and crafts”的子目录,url为“index.php?category=1”,其它子目录和这个url只在最后的变量上不同,因此我们需要修改当index.php之后跟随变量时服务器对它的打开方式。通知服务器在接受一个html页面的调用请求后打开一个php文件需要在服务器上index.php所在的目录下放置一个.htaccess文本文件。.htaccess文件是apache服务器上的一个目录配置设置文件,它提供了针对目录改变配置的方法,即在一特定的文档目录中放置一个包含一个或多个指令的文件(.htaccess文件),来作用于此目录及其所有子目录。.htaccess的功能包括设置网页密码、设置发生错误时出现的文件、改变主页文件名、禁止读取文件名、重新导向文件、增加mime类别、禁止列目录下的文件等。在需要针对目录改变服务器的配置,而对服务器系统没有root权限时,应该使用.htaccess文件。如果服务器管理员不愿意频繁修改配置,则可以允许用户通过.htaccess文件自己修改配置,尤其是isp在一台机器上提供多个用户站点,而又希望用户可以自己改变配置的情况下,一般会开放部分.htaccess的功能给使用者自行设置。对于vdeck用户来说,可能需要先创建一个文本文件,然后在管理面板将其更名为.htaccess。现在我们需要在服务器端指定一些变量。比方说,我需要把“?category=x”这个变量改成“directory-x.html”,这样就能消除动态页面无法被搜索引擎检索的问题。在开始创建服务器变量前,我们需要先在这个新建的.htaccess文件中创建一个rewrite engine (url重写工具)。只需要在文件第一行写上rewriteengine on这就等于告诉服务器我们要改变一些文件的处理方式。接下来的一行就要指定重写规则:rewriterule ^directory-([0-9]*.* index.php?category=$1 [l,nc]这个指令表明:只要接到url中包含“directory-0”到“directory-9”的任意静态网页的页面调用请求,服务器将以“index.php?变量”地址返回给调用用户。必要在更改实际的php页面之前先进行一下测试。可以对上面的"重写规则"进行测试。首先新开一个浏览器窗口,在地址栏中输入“directory-1.htm”或“directory-1.html”,如果我们看到的页面显示为“index.php?category=1”就表明改写规则工作正常。让搜索引擎看到我们的静态化页面需要让搜索引擎能够看到我们经过“改头换面”的新的网页地址。那么,是不是需要赶紧把网站再向搜索引擎提交一遍呢? 不用这么费劲,我们只需打开php文件编辑一下就行了。不过在此之前,应记得将要修改的每个脚本都做个备份,将其存放在硬盘上。然后需要确定创建更改链接地址的程序的不同地方。最好在前端而不要在后台进行更改。php文件将会从.htaccess文件中得到形如“index.php?category=x”之类的信息。我们需要把这些动态生成的网页地址更改一下,并以静态化页面地址显示给用户和搜索引擎。即将所有url中包含“index.php?category=”的部分替换为“directory-”,并加上.html后缀。
Ⅶ 如何将.php.文件转换为。.html文件
很简单,.php不能直接转换.html文件,要在php环境里面进行编程才能转换.html,php是一个脚本解释语言,Dreamweaver能够编辑.php文件,但是不能执行.php文件,建议你安装一个php环境后再运行php文件就可以,希望看到后给我为正确答案