马永占,myz,mayongzhan

相当稳定的进步,欢迎回贴交流

马永占ID:mayongzhan
65969次访问,排名1532(1)好友1人,关注者14
php,apache,mysql,linux,html,css,javascript
mayongzhan的文章
原创 151 篇
翻译 0 篇
转载 0 篇
评论 90 篇
myz的公告

XML聚合
feedsky
最近评论
waterFLY:所有的东西都有tostring(),是因为所有的类都继承自object,object有 toString();
790500:马永占,你好,请加我QQ790500,我想做个小软件,是关于登陆论坛的
joe:Zend_Acl 每个人理解不同,我开始用zf做项目,权限也是自己写,后来全部重写为Zend_Acl,因为个人觉得Zend_Acl和Zend_Auth结合用不错

Zend_Filter 虽然我写的model底层类的那些基本的过滤都是直接用php函数,毕竟速度快,也方便,但这个只是基础,很多时候不同表单牵涉不同的过滤,例如ip地址过滤等等,那么就需要自己写filter了,……
nginxlee:很好,很强大!
Henry_Ma:这个笔记不错,我也这样记一下。
文章分类
收藏
    相册
    存档
    订阅我的博客
    XML聚合  FeedSky

    原创 php生成静态页收藏

    新一篇: 正则表达式 | 旧一篇: Mysql中随即读取一条数据

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan

    php生成静态页

    两个文件:
    Addnews.php
    Template.html
    还有一个数据库

    首先建立数据库,然后调用addnews.php,然后可以得到结果.

    得到的html文件的名字是由当前日期加上标题构成,如果需要用唯一的东西来生成html的话,最好使用sql中的自增的id,或者自建一个当天的临时数据,来联合生成html文件名.

    本程序使用了php中 数据库操作,文件操作等知识.曾见过有牛人用ob_start写,利用了缓冲,方法也不错.

    Addnews.php程序如下:
    <?php
    $conn=mysql_connect('localhost','root','myz');
    if (mysqli_connect_errno())
    {
     echo mysqli_connect_error();
     exit;
    }
    mysql_select_db('myztohtml',$conn);
    mysql_query("SET NAMES 'gbk'");

    if (isset($_POST['submit']))
    {
     $title=$_POST['title'];
     $content=$_POST['content'];
     $time=date('Ymd');
     $query = "INSERT INTO news (title,content,time) VALUES ('".$title."','".$content."','".$time."')";
     $result=mysql_query($query);
     if ($result)
     {
      $filename=$_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF']).'/'.$time.$title.'.html';
      $fp=fopen($filename,'w');
      $filenameT=$_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF']).'/template.html';
      $fpT=fopen($filenameT,'r');
      $str=fread($fpT,filesize($filenameT));
      $str=str_replace('{title}',$title,$str);
      $str=str_replace('{content}',$content,$str);
      fwrite($fp,$str);
      fclose($fp);
      fclose($fpT);
      echo 'ok! '.'view the htmlnews output:<a href="'.$time.$title.'.html">'.$title.'</a>';
     }
    }
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
    <title></title>
    </head>
    <body>
      <form method="post" action="addnews.php">
      新闻标题:<input type="text" name="title"><br />
      新闻内容:<textarea name="content"></textarea><br />
      <input type="submit" name="submit" value="提交">
      </form>
    </body>
    </html>

    Template.html如下:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
    <title>{title}</title>
    </head>
    <body>
    {content}
    </body>
    </html>

    数据库如下:
    -- phpMyAdmin SQL Dump
    -- version 2.10.1
    -- http://www.phpmyadmin.net
    --
    -- 主机: localhost
    -- 生成日期: 2007 年 07 月 18 日 16:55
    -- 服务器版本: 5.0.27
    -- PHP 版本: 5.2.1

    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

    --
    -- 数据库: `myztohtml`
    --

    -- --------------------------------------------------------

    --
    -- 表的结构 `news`
    --

    CREATE TABLE `news` (
      `id` mediumint(9) NOT NULL auto_increment COMMENT '编号',
      `title` varchar(50) NOT NULL COMMENT '标题',
      `content` varchar(200) NOT NULL COMMENT '内容',
      `time` date NOT NULL COMMENT '日期',
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=1 ;

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

    Mysql中随即读取一条数据
    原来的读法是
    SELECT * FROM _table //读取数据
    得到一个数据集,
    然后使用RecordCount()读出条目数量,然后使用PHP中的RAND(0,RecordCount()-1),
    然后使用move( RAND(0,RecordCount()-1) ),得到该数据
     
    这样需要读取的数据比较多,浪费资源,换成下面的程序:
    SELECT * FROM _table ORDER BY rand() LIMIT 0,1
    得到一个数据集,其实就一个数据
    然后直接读出来就可以了.可以通过phpmyadmin试一下该语句

    发表于 @ 2007年07月20日 16:49:00|评论(loading...)|编辑

    新一篇: 正则表达式 | 旧一篇: Mysql中随即读取一条数据

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © myz