[转]用PHP的ob_start();控制您的浏览器cache!
Output Control
函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。输出控制函数不对使用
header()
或
setcookie(),
发送的文件头信息产生影响
,
只对那些类似于
echo()
和
PHP
代码的数据块有作用。
我们先举一个简单的例子,让大家对
Output Control
有一个大致的印象:
Example 1.
CODE<?php
ob_start(); //
打开缓冲区
echo \"Hellon\"; //
输出
header("location:index.php"); //
把浏览器重定向到
index.php
ob_end_flush();//
输出全部内容到浏览器
?>
所
有对
header()
函数有了解的人都知道,这个函数会发送一段文件头给浏览器,但是如果在使用这个函数之前已经有了任何输出(包括空输出,比如空格,回
车和换行)就会提示出错。如果我们去掉第一行的
ob_start()
,再执行此程序,我们会发现得到了一条错误提示:
"Header
had all ready send by"
!但是加上
ob_start
,就不会提示出错,原因是当打开了缓冲区,
echo
后面的字符不会输出到浏览器,而是保留在服务器,直到你使用
flush
或者
ob_end_flush
才会输出,所以并不会有任何文件头输出的错误!
一、
相关函数简介:
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
:删除内部缓冲区的内容,并且
相关文档:
(4)映射类(ReflectionClass)
ReflectionClass类允许你反向映射类。
<?
php
interface MySerializable
{
// ...}
class My
Object
{
// ...}
/** A counter class */
class
Counter
exten ......
步骤一:搭建环境
1,首先查看你的php扩展目录下是否有php_gettext.dll这个
文件,如果没有,这就需要你
下载一个或是从其他地方拷贝一个,然后放到php扩展目录。
2,打开php.ini,查
找”;extension=php_gettext.dll“ ,然后去除注释,重启apache。
步骤二:原理讲解
假如你的没
有国际化的程序里有这样 ......
原文链接:http://www.phpdo.net/index.php/20100409/54.html
如何在PHP中创建数组呢?
在PHP中使用array函数来创建一个数组,它允许一定数量用逗号key=>value参数。Key可以是integer或者string类型,value可以是任何值。
例如:
<?php
$array = array(“php1″=>”phpdo”, ......
windows下开发php扩展网上很多资料都说需要Cygwin,其实完全可以不必安装该东东。没错,是可以在linux下生成骨架后拷到windos下来用,但是,如果没有linux环境呢?什么,装虚拟机?我晕,你咋又绕回去了- -! 除了编译外,shell环境主要就是为了生成扩展的骨架,其实骨架已经在php源码包中了了,我们只需要把相关名字替换一 ......