php 生成静态页面

 更新时间:2016年11月25日 16:08  点击:1884
<?php
class html
{
    var $dir;        //dir for the htmls(without/)
    var $rootdir;    //root of html files(without/):html
    var $name;       //html文件存放路径
    var $dirname;    //指定的文件夹名称
    var $url;        //获取html文件信息的来源网页地址
    var $time;       //html文件信息填加时的时间
    var $dirtype;    //目录存放方式:year,month,,,,
    var $nametype;   //html文件命名方式:name
 
    function html($nametype=''name'',$dirtype=''year'',$rootdir=''html'')
    {
        $this->setvar($nametype,$dirtype,$rootdir);
    }
         
    function setvar($nametype=''name'',$dirtype=''year'',$rootdir=''html'')
    {
      $this->rootdir=$rootdir;
      $this->dirtype=$dirtype;
      $this->nametype=$nametype;
    }
 
    function createdir($dir='''')
    {
        $this->dir=$dir?$dir:$this->dir;
 
        if (!is_dir($this->dir))
        {
            $temp = explode(''/'',$this->dir);
            $cur_dir = '''';
            for($i=0;$i<count($temp);$i++)
            {
                $cur_dir .= $temp[$i].''/'';
                if (!is_dir(
< 前言:

目前网络上好多网站的新闻发布系统都采用了动态服务器技术生成静态HTML的做法,这样做的好处是:一是能减轻其服务器的负担,二是因为生成了HTML静态页面,所以其网站被搜索引擎搜索到的机率更大一些。笔者的网站曾经使用PHP这一动态技术来构建新闻发布系统,其原理也就是应用了PHP生成HTML静态页面的技术,相关平台是 Windows XP Sp2+php4.32+mysql,因此,在这里,想简单地谈一下这种做法的思路。这篇文章适合于对PHP+MYSQL数据库操作,SQL语句以及网页设计有点基础的朋友,如果您是一个从头开始学的朋友,那么请先打好基础吧!到这里就不用往下看了。如果您都符合上述条件的话,那么恭喜您,请接着往下看。但是,在具体动手构建之前,您还要做好以下几点准备工作。

一、 具备本地调试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 简单的源代码如下:

<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=”提交&rdqu

PHP干了三年,越来越迷离

原来刚接触PHP时,不晓得为啥大家都要用这个类那个类的~一直都是自已写函数,再到后面,觉得类有需要了,开始接触这东西~

因为之前想换份JAVA的工作(以前JAVA极火)看了飞思的一些JAVA的书,好歹有了一些关于类这一方面抽象的概念,观念也转得快~

之后,又接触了smarty,才直正觉得把程序和模板分开干,真是一种乐趣~

再到后来呢,因为干过一次电子税务的项目,涉及了更多网站没有的死角,才开始真正了解到了为什么网上会有这么多类,原来不是每一个人都可以涉猎很深的,所以在涉足到其它方面时,是需要一些帮助的,比如说从网上下别人的类来用。

但是随着时间越来越往后,我也越来越迷离,原来是模板用smarty,数据库用adodb,打印用fpdf,创建excel用biffwrite ,ajax用的是xajax

当这些类我慢慢上手之后,却发现了更多更多的东西,比如说ZF,比如说pear,他们又是某种集合了绝大多数功能或是应用的类库

汗呀,他们在争霸天下吗?苦了我们这些人,得左右摇摆,今天跳公司,他们用pear,后天跳,他们用zf

我拷~

我左手朝他们竖起了中指,右手却抓着鼠标点击下载~

无奈~

<

php.ini中文翻译

PHP还是一个不断发展的工具,其功能还在不断地删减 
; 而php.ini的设置更改可以反映出相当的变化, 
; 在使用新的PHP版本前,研究一下php.ini会有好处的 



[PHP] 
; PHP还是一个不断发展的工具,其功能还在不断地删减 
; 而php.ini的设置更改可以反映出相当的变化, 
; 在使用新的PHP版本前,研究一下php.ini会有好处的 

;;;;;;;;;;;;;;;;;;; 
; 关于这个文件 ; 
;;;;;;;;;;;;;;;;;;; 

; 这个文件控制了PHP许多方面的观点。为了让PHP读取这个文件,它必须被命名为 
; ''php.ini''。PHP 将在这些地方依次查找该文件:当前工作目录;环境变量PHPRC 
; 指明的路径;编译时指定的路径。 
; 在windows下,编译时的路径是Windows安装目录。 
; 在命令行模式下,php.ini的查找路径可以用 -c 参数替代。 

; 该文件的语法非常简单。空白字符和用分号'';''开始的行被简单地忽略(就象你可能 
; 猜到的一样)。 章节标题(例如 : [Foo])也被简单地忽略,即使将来它们可能 
; 有某种的意义。 

; 指示被指定使用如下语法: 
; 指示标识符 = 值 
; directive = value 
; 指示标识符 是 *大小写敏感的* - foo=bar 不同于 FOO = bar。 

; 值可以是一个字符串,一个数字,一个 PHP 常量 (如: E_ALL or M_PI), INI 常量中的 
; 一个 (On, Off, True, False, Yes, No and None) ,或是一个表达式 
; (如: E_ALL & ~E_NOTICE), 或是用引号括起来的字符串("foo"). 

; INI 文件的表达式被限制于位运算符和括号。 
; │ bitwise OR 
; & bitwise AND 
; ~ bitwise NOT 
; ! boolean NOT 

; 布尔标志可用 1, On, True or Yes 这些值置于开的状态。 
; 它们可用 0, Off, False or No 这些值置于关的状态。 

; 一个空字符串可以用在等号后不写任何东西表示,或者用 None 关键字: 

; foo = ; 将foo置为空字符串 
; foo = none ; 将foo置为空字符串 
; foo = "none" ; 将foo置为字符串''none'' 

; 如果你值设置中使用常量,而这些常量属于动态调入的扩展库(不是 PHP 的扩展,就是 
; Zend 的扩展),你仅可以调入这些扩展的行*之后*使用这些常量。

1. php生成js文件:

<?php
$a=array(
 array(''title''=>''本地新闻1'',ln=>''#''),
 array(''title''=>''本地新闻2'',ln=>''#''),
 array(''title''=>''本地新闻3'',ln=>''#'')
 
);//实际操作中可通过数据库得到记录集数组
$news='' var a=[''; //把该数组转化为javascrīpt形式

for($i=0;$i<count($a);$i++) {
 
 
 if($i==count($a)-1) {
  $news.=''{''
   ."title:''"
   .$a[$i][title]."''"
   .","
   ."ln:''"
   .$a[$i][ln]
   .''''}'';
 }else {
  $news.=''{''
   ."title:''"
   .$a[$i][title]."''"
   .","
   ."ln:''"
   .$a[$i][ln]
   .''''},''; //如不是最后一个数据,则用逗号隔开,否则结束
 }
}

$news.=''];'';
$fh=fopen("file.js","w");
fwrite($fh,$news);
fclose($fh); //写入js
?>

2.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.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>


<body>
<div id="news"  style="display:none" > //定义显示的格式,先通过display:none 隐藏
<table border="1" bordercolor="#FF0000">
  <tr>
    <td><a href="$link">$title</a></td>
  </tr>
 </table>
</div>
<scrīpt language="javascrīpt" src="file.js"> //引用js

</scrīpt>
<scrīpt language="javascrīpt" >

 news_obj=document.getElementById(''news'');
 e=news_obj.innerHTML;
 re=/$title/g; //正则,匹配$title
  re2=/$link/g; // 匹配$link
 for(i=0;i<a.length;i++) {
  tmp=e.replace(re,

<
[!--infotagslink--]

相关文章

  • php二维码生成

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

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

    这篇文章主要介绍了C#生成随机数功能,涉及C#数学运算与字符串操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php生成唯一数字id的方法汇总

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

    下面小编就为大家带来一篇jQuery为动态生成的select元素添加事件的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-09-01
  • PHP自动生成后台导航网址的最佳方法

    经常制作开发不同的网站的后台,写过很多种不同的后台导航写法。 最终积累了这种最写法,算是最好的吧...2013-09-29
  • js生成随机数的方法实例

    js生成随机数主要用到了内置的Math对象的random()方法。用法如:Math.random()。它返回的是一个 0 ~ 1 之间的随机数。有了这么一个方法,那生成任意随机数就好理解了。比如实际中我们可能会有如下的需要: (1)生成一个 0 - 1...2015-10-21
  • PHP验证码生成与验证例子

    验证码是一个现在WEB2.0中常见的一个功能了,像注册、登录又或者是留言页面,都需要注册码来验证当前操作者的合法性,我们会看到有些网站没有验证码,但那是更高级的验证了,...2016-11-25
  • PHP生成不同颜色、不同大小的tag标签函数

    复制代码 代码如下:function getTagStyle(){ $minFontSize=8; //最小字体大小,可根据需要自行更改 $maxFontSize=18; //最大字体大小,可根据需要自行更改 return 'font-size:'.($minFontSize+lcg_value()*(abs($maxFo...2013-10-04
  • php中利用str_pad函数生成数字递增形式的产品编号

    解决办法:$str=”QB”.str_pad(($maxid[0]["max(id)"]+1),5,”0″,STR_PAD_LEFT ); 其中$maxid[0]["max(id)"]+1) 是利用max函数从数据库中找也ID最大的一个值, ID为主键,不会重复。 str_pad() 函数把字符串填充为指...2013-10-04
  • JS生成某个范围的随机数【四种情况详解】

    下面小编就为大家带来一篇JS生成某个范围的随机数【四种情况详解】。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧...2016-04-22
  • C#生成Word文档代码示例

    这篇文章主要介绍了C#生成Word文档代码示例,本文直接给出代码实例,需要的朋友可以参考下...2020-06-25
  • C#中静态的深入理解

    这篇文章详细的介绍了C#中的静态,有需要的朋友可以参考一下...2020-06-25
  • Vue组件文档生成工具库的方法

    本文主要介绍了Vue组件文档生成工具库的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-08-11
  • 浅析C#中静态方法和非静态方法的区别

    C#静态方法与非静态方法的区别不仅仅是概念上的,那么他们有什么具体的区别呢?让我们通过本文向大家介绍下C#中静态方法和非静态方法的区别,一起看看吧...2020-06-25
  • PHP简单实现生成txt文件到指定目录的方法

    这篇文章主要介绍了PHP简单实现生成txt文件到指定目录的方法,简单对比分析了PHP中fwrite及file_put_contents等函数的使用方法,需要的朋友可以参考下...2016-04-28
  • 西部数码空间伪静态配置方法图解

    今天在使用西部数码空间时发现里面有很多定义好的伪静态规则了,下面我来给大家介绍一下在后面主机面板中配置使用伪静态功能吧,希望文章对各位会带来帮助。...2016-10-10
  • 史上最简洁C# 生成条形码图片思路及示例分享

    这篇文章主要介绍了史上最简洁C# 生成条形码图片思路及示例分享,需要的朋友可以参考下...2020-06-25
  • 简单入门级php 生成xml文档代码

    $doc = new domdocument('1.0'); // we want a nice output $doc->formatoutput = true; 代码如下 复制代码 $root = $doc->createelement('bo...2016-11-25
  • 解决PHPWord导出生成Word中文乱码问题

    PHPWord是一个可以把相关文件生成word文档的插件了,但由于是老外开发的对于gbk支持不好,所以我们在导出带有中文的word时会出现乱码问题,下面本文就PHPWord中文乱码问题...2016-11-25