发送数据给浏览器(PHP)

一、使用echo方法输出信息
在PHP中,echo()是最常用的方法,用来将服务器端的数据发送给浏览器。
所发送的内容可以是字符串常量、变量、HTML代码、JavaScript代码等所有浏览器能解释的代码。

缺省写法:<?=... ?>("<?"和"="之间不能有空格)
使用缺省写法时,PHP代码必须用"?>"和"<?"进行封闭。

echo的功能和print的功能基本相同,但是echo可以同时输出多个字符串之间用","隔开即可,而print一次只能输出一个字符串。

二、header()函数的使用

void header(string message[,bool replace[,int http_response_code]]);
其中,message参数用来设置响应头信息,其格式为"header_name:header_value";
 
作用:
(一)重定向网页
使用location响应头,可以重定向网页。

<?php
	header("location:http://www.sohu.com");
	header("location:http://www.baidu.com");
?>

注意:
①location和":"号之间不能有空格。
②在header语句之前,服务器不能向客户端发送任何数据,也不能有HTML代码
③如果PHP代码中有多条重定向语句,则会重定向到最后一条语句中的URL,表明执行重定向语句后仍会继续执行后面的语句,若要重定向后立即停止脚本,应在重定向后使用exit()或die()方法退出。

(二)文件延迟转向

使用Refresh响应头,可以使页面延迟N秒后重定向到指定的URL页面。

<?php
	header("Refresh:3;url=http://www.baidu.com");
	echo  "三秒后跳转到百度首页";
?>

(三)禁用浏览器缓存

为了让用户每次都能从服务器上获取最新的网页,而不是浏览器缓存中的网页可以用下列标头禁用浏览器缓存。
header('Expires:Mon,26 Jul 1997 05:00:00 GMT'); //设置过期时间为过去的某一天
header('Last-Modified:'.gmdate('D,d M Y H:i:s').'GMT');
header('Cache-Control:no-store,no-cache,must-revalidate');
header('Pragma:no-cache');

四)强制下载文件
简单文件可以通过超链接下载,后缀名为.html的文件用超链接会直接输出给浏览器,这时就可以用header函数强制下载文件。

//根据实际情况修改使用 
<?php
	$filename="test.gif"; //指定文件名 
	header('Content-Type:image/gif;); //指定下载文件类型 
	header('Content-Disposition:attachment;filename="'.$filename.'"');//下载文件的描述 
	header('Content-Length:'.filesize($filename));//下载文件的大小 
	readfile($filename);//将文件内容读取出来并直接输出以便下载 
?>

缓冲区操作

缓冲区是服务器内存中的一块区域。在没有开启缓冲区时,执行文件输出的内容直接输出到浏览器,
开启缓冲区后,执行文件会先存入缓冲区直到脚本执行完毕,再将缓冲区的内容发送给浏览器。

缓冲区操作函数:
ob_start();               //打开输出缓冲区
ob_get_contents(); //返回内部缓冲区的内容
ob_get_clean();      //返回内部缓冲区的内容,并关闭缓冲区
ob_get_flush();       //返回内部缓冲区的内容,并关闭缓存区,再将缓冲区的内容立即输出到客户端
ob_get_length();     //返回内部缓冲区的长度
ob_clean();             //删除内部缓冲区的内容,但不关闭缓冲区
ob_flush();              //立即输出内部缓冲区的内容,但不关闭缓冲区
flush();                    //刷新输出缓冲,将ob_flush输出的内容,以及不在PHP缓冲区的内容,全部输出至浏览器
ob_end_clean();     //删除内部缓冲区的内容,并关闭缓冲区
ob_end_flush();      //立刻输出内部缓冲区的内容,并不关闭缓冲区

缓冲区函数名中,end表示关闭缓冲区;clean表示删除缓冲区的内容;flush表示发送缓冲区的内容到浏览器;get表示缓冲区中的内容将作为函数的返回值返回。

1)使用ob_start()打开缓冲区

缓冲区打开,运行程序会先延迟一会,然后一起输出所有内容。

<?php
	ob_start();
	for($i=0;$i<1000;$i++){
		for($j=0;$j<10000;$j++){
			echo $i." ";
		}
	}
?>

2)ob_flush()和ob_clean()函数
PHP会在以下三种情况下将缓冲区中的内容发送给客户端
①遇到ob_flush()、ob_end_flush()、ob_get_flush()函数
②程序执行完
③遇到exit或die函数提前终止程序

<?php
	ob_start();
	echo "ONE<br/>";
	ob_flush();  //立刻输出缓冲区的内容 
	echo "TWO<br/>";
	ob_clean();  //清除缓冲区内容 
	echo "THREE<br/>";
	ob_end_flush();//发送缓冲区内容到浏览器,并关闭缓冲区 
?> 
/*运行结果*/
/*
ONE
THREE
*/

3)ob_get_contents和ob_get_length函数

<?php
	ob_start();
	echo "<b>hello</b>";
	$str=ob_get_contents();
	$len=ob_get_length();
	ob_end_clean();
	echo $str." ".$len;
?> 
/*运行结果*/
/*
hello 12 
*/ 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值