• 专注于网站建设,网络推广,关键词优化,SEO优化,专业的网站建设开发团队!

叶景网络之 PHP页面静态化学习笔记

2015-06-13 17:07:44   来源:叶景网络
    //=========================================
    测试网站并发的方法:
    //=========================================
    在apache 的bin目录下有一个ab.exe的文件(用于测试网站的并发速度)
    在dos 窗口中,输入cd D:\lamp\apache2\bin
    再:ab.exe -n 10000 -c 10 http://localhost/web/index.php
    注:-n 为访问次数,-c 为访问人数   
    //===========================================
    缓存
    //=======================================================================
    要测试 PHP 自己的缓存机制,需要做配置
    php.ini中
    display_errors=On
    output_buffering=Of
    error_reproting=设置错误级别
    注:
    一旦把PHP设置成呈现出发生了哪些错误,你可能想调整错误报告的级别。它们一般是以下3类级别之一:
    l    注意(notice),这不会阻止脚本的执行,并且可能不一定是一个问题;
    2    警告(warning),这指示一个问题,但是不会阻止脚本的执行;
    3    错误(error),这会阻止脚本继续执行(包括常见的解析错误,它从根本上阻止脚本运行)。
    php 的错误级别默认情况下,PHP错误报告等级是E_NOTICE E_ALL表示报告所有非致命错误,因为这些错误可能会导致大
    问题(比如使用了未定义的变量)。显示所有的错误,除了提醒和编码标准化警告。错误报告是位字段。可
    以将数字加起来得到想要的错误报告等级。
    E_ALL - 所有的错误和警告(不包括 E_STRICT) 
    E_ERROR - 致命性的运行时错误 
    E_WARNING - 运行时警告(非致命性错误) 
    E_PARSE - 编译时解析错误 
    E_NOTICE - 运行时提醒(这些经常是你代码中的bug引起的,也可能是有意的行为造成的。) 
    E_STRICT - 编码标准化警告,允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。
    E_CORE_ERROR - PHP启动时初始化过程中的致命错误 
    E_CORE_WARNING - PHP启动时初始化过程中的警告(非致命性错) 
    E_COMPILE_ERROR - 编译时致命性错 
    E_COMPILE_WARNING - 编译时警告(非致命性错) 
    E_USER_ERROR - 用户自定义的错误消息 
    E_USER_WARNING - 用户自定义的警告消息 
    E_USER_NOTICE - 用户自定义的提醒消息 如果设置为:E_ALL | E_STRICT,则表示记录所有的错误信息
    ,可能会导致网站出现一大堆的错误代码;但是对于程序员来说应该说是一件好事,可以把代码优化到最
    优; 一些非致命性错误虽然不影响程序的运行,但是会使PHP的负担加重,通常是增加了网站进程(例如
    IIS的应用程序池)的负担。
    本函数用来配置错误信息回报的等级,参数 level 是一个整数的位遮罩 (bitmask),见下表。
    遮罩值 表示名称 
    1 E_ERROR 
    2 E_WARNING 
    4 E_PARSE 
    8 E_NOTICE 
    16 E_CORE_ERROR 
    32 E_CORE_WARNING
    E_NOTICE 表示一般情形不记录,只有程序有错误情形时才用到,例如企图存取一个不存在的变量,或是呼叫 stat() 函数检视不存在的文件。 
    E_WARNING 通常都会显示出来,但不会中断程序的执行。这对除错很有效。例如:用有问题的正则表达式呼叫 ereg()。 
    E_ERROR 通常会显示出来,亦会中断程序执行。意即用这个遮罩无法追查到内存配置或其它的错误。 
    E_PARSE 从语法中解析错误。 
    E_CORE_ERROR 类似 E_ERROR,但不包括 PHP 核心造成的错误。 
    E_CORE_WARNING 类似 E_WARNING,但不包括 PHP 核心错误警告。
    error_reporting( 7 ) = error_reporting( 1+2+4) = error_reporting(E_ERROR | E_WARING | E_PARSE)
    //=======================================================================
    头文件 header("content-type:text/htm;charset=utf-8");
    //=======================================================================
    例:<?php
    //解决方法:开启缓存
    //ob_start();//或者在php.ini 中开启缓存
    echo "11111111111";
    header("content-type:text/htm;charset=utf-8");
    echo "11111111111";
    ?>
    以上输出会报错,因为没有开启缓存
    //--------------------------------------------------------------------------
    //先判断,是否已经存在缓存文件
    $html_filename="news_id".$id.".html";
    if(file_exists($html_filename)&&filetime($html_filename)+30<time()){//判断页面是否过期
    //直接访问这个面页(把html页面的内容返回)
    echo file_get_contents($html_filename);
    exit;
    }
    $conn=mysql_connect("localhost","root","");
    if(!$conn){
    die("数据库链接失败!");
    }else{
    mysql_select_db("web_db",$conn);
    }
    $sql="select *form web_db";
    $res=mysql_query($sql);
    //页面静态化代码
    //开启ob缓存
    ob_start();
    while($row=mysql_fetch_assoc($res)){
    echo $row['id'];
    echo $row['title'];
    }
    //页面静态化代码
    $html_content=ob_get_contents();
    $html_filename="news_id".$id.".html";
    //ob->$html_filename(必要时,需要考虑文件路径)
    file_put_content($html_filename,$html_content);
    //关闭资源
    mysql_free_result($res);
    mysql_close($conn);
    //-------------------------------------------------
    方法一:
    判断页面是否过期(例子:在上面)
    方法二:
    添加---------数据到数据库时同时生成一个静态的模板文件
    修改---删除时候也考虑
    关键代码:
    //自定义的替换函数
    function replace($row,$title,$content){
    str_replace(<{title}>,$title,$row);
    str_replace(<{content}>,$content,$row);
    return $row;
    }
    if(mysql_query($sql.$conn)){
    $id=mysql_insert_id();
    $html_filename="new_id".$id.".html";
    $fp_tmp=fopen("template.tpl","r");//如果用“W”方式打开,里面的 内容就没有了!
    $fp_html_file=fopen($html_filename,"w");
    //-》tmp->html逐行读取template.tpl文件
    while(!feof($fp_tmp)){
    //读取一行的函数
    $row=fgets($fp_tmp);
    //替换
    $new_row=replace($row,$title,$content);
    //把替换后的行写入文件中
    fwirte($fp_html_file);
    }
    //关闭文件流
    fclose($fp_tmp);
    fclose($fp_html_file);
    }
    //修改时也要变更模板文件
    关键代码:
    修改后,不让页面缓存
    <head>
    //用三行不同代码,为了让不同的浏览器都能识别
    <meta http-equiv='Cache-Control' content='no-cache' />
    <meta http-equiv='Expires' content='-1' />
    <meta http-equiv='Pragma' content='no-cache' />
    </head>
叶景网络,网络推广,网站建设
特别推荐RECOMMEND
搜索引擎网站关键词seo优化的意义
视频推广怎么做
网站seo优化怎么做关键词排上首页?
SEO介绍什么叫搜索引擎网站关键词优化
seo优化怎样做提升关键词排名
热点图文Hot
没有加www域名打不开的解决方案 没有加www域名打不
叶景网络之CodeIgniter框架的学习 叶景网络之CodeIgni
叶景网络之Ajax学习笔记 叶景网络之Ajax学习
叶景网络之DIV+CSS学习笔记 叶景网络之DIV+CSS
关注排行RANKING
1

没有加www域名打不开的解决方案

没有加www域名打不开的解决方案 网站上线了,在做SEO时发现没带www的时候访问不了,是以前的域名绑定时没做好,这对se...

2

叶景网络之CodeIgniter框架的学习

叶景网络之CodeIgniter框架的学习 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网站建...

3

叶景网络之Ajax学习笔记

叶景网络之Ajax学习笔记 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网站建...

4

叶景网络之DIV+CSS学习笔记

叶景网络之DIV+CSS学习笔记 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网站建设...

5

叶景网络之SQL注入与安全学习笔记

叶景网络之SQL注入与安全学习笔记 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网站建...

6

叶景网络之Mysql常用命令学习笔记

叶景网络之Mysql常用命令学习笔记 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网站建...

7

叶景网络之Mysql优化的学习笔记

叶景网络之Mysql优化的学习笔记 通俗地理解三个范式,对于数据库设计大有好处。 第一范式:1NF是对属性的原子性...

8

叶景网络之Gvim编辑器的学习笔记

叶景网络之Gvim编辑器的学习笔记 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网...

9

叶景网络之memcached 学习笔记

叶景网络之memcached 学习笔记 memcached 是一个高效的分布式的内存对象系统,他可以支持把各种php的数据放入...