php header函数实现代码
定义和用法
header() 函数向客户端发送原始的 http 报头。
认识到一点很重要,即必须在任何实际的输出被发送之前调用 header() 函数(在 php 4 以及更高的版本中,您可以使用输出缓存来解决此问题):
location
refresh
content-type
expires(意思为终止)
last-modified等。
location – 浏览器显示指定的网页。
格式: header(“location: http://绝对地址”);
location 的地址必须是一个绝对地址。
refresh
refresh – 更新网页。
<html>
<?php
// 结果出错
// 在调用 header() 之前已存在输出
header('location: http://www.111cn.net/');
?>语法
header(string,replace,http_response_code)
该函数防止一次发送多个报头
<?php
// date in the past
header("expires: mon, 26 jul 1997 05:00:00 gmt");
header("cache-control: no-cache");
header("pragma: no-cache");
?>
提示用户保存一个生成的 pdf 文件(content-disposition 报头用于提供一个推荐的文件名,并强制浏览器显示保存对话框):
当时间超过指定时间就表示网页内容已经失效。 其格式如下
expires = “expires:” http-date
例 如: header(“expires: fri, 31 oct 2003 18:00:00 gmt”); 表示2003年10月31日星期五 18时。
header(“expires: wed, 30 jun 2004 09:00:00 gmt”); 表示2004年6月30日星期三 9时。
last-modified = “last-modified” “:” http-date
例如 header(“last-modified: wed, 01 jan 2003 12:00:00 gmt”); 上次修改时间2003年1月1日12时
cache control
no-cache 使得服务器的数据可以传送到远程的使用者, 而不会被暂存 (cache) 起来。
no-store 是预防不良的版本或者是敏感的信息被保留下来。
must-revalidate 是指必须要再评估信息, 如果暂存 (cached) 的数据是无效的则让服务器与使用者端联机
date 是说明数据内容的建立日期及时间。 其格式如下: date = “date:” http-date
范例: header(“date: sun, 15 feb 2004 08:00:00 gmt”); 建立日期是2004年2月15日8时。
<?php
header("content-type:application/pdf");// 文件将被称为 downloaded.pdf
header("content-disposition:attachment;filename='downloaded.pdf'");// pdf 源在 original.pdf 中
readfile("original.pdf");
?>
本文章主要针对数组交集、判断键是否存在于数组中、合并两个数组、数据排序、增加数组,删除数组元素、随机抽取数组元素等实例。
*/
$array1=array("a"=>"green","red","blue");
$array2=array("b"=>"green","yellow","red");
$result=array_intersect($array1,$array2);//计算交集并赋值
print_r($result);
//
$search_array=array('first'=>1,'second'=>4); //定义数组
if(array_key_exists('first',$search_array)) //判断键是否存在于数组中
{
echo "the 'first' element is in the array"; //输出相应信息
}
//
$ar1=array("color"=>array("favorite"=>"red"),5);
$ar2=array(10,"color"=>array("favorite"=>"green","blue"));
$result=array_merge_recursive($ar1,$ar2); //合并两个数组返回一个结果数组
print_r($result); //输出结果
//
$array1=array("color"=>"red",2,4);
$array2=array("a","b","color"=>"green","shape"=>"trapezoid",4);
$result=array_merge($array1,$array2); //合并两个数组
print_r($result); //输出结果内容
//
$ar1=array("10",100,100,"a"); //定义数组1
$ar2=array(1,3,"2",1); //定义数组2
array_multisort($ar1,$ar2); //排序2个数组
var_dump($ar1); //打印排序后的结果
var_dump($ar2); //打印排序后的结果
//
$stack=array("orange","banana","apple","rasp教程berry"); //定义一个数组
$fruit=array_pop($stack); //最后一个元素出栈
print_r($stack); //显示结果
//
$stack=array("orange", "banana"); //定义原始数组
array_push($stack,"apple","raspberry"); //执行压栈操作
print_r($stack); //显示结果,将返回四个值
//
srand((float)microtime()*10000000); //为随机数发生器播种
$input=array("neo","morpheus","trinity","cypher","tank"); //定义原始数组
$rand_keys=array_rand($input,2); //随机挑选数组元素
print $input[$rand_keys[0]]."n"; //分别显示随机挑选的数组元素
print $input[$rand_keys[1]]."n";
返回的数组中包括的四个元素:键名为 0,1,key 和 value。单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。
如果内部指针越过了数组范围,本函数将返回 false。
*/
$sports = array(
'football' => 'good',
'swimming' => 'very www.111cn.net',
'running' => 'not good');
while (list($key,$value) = each($sports))
{
echo $key.": ".$value."<br />";
}
/*
定义和用法
list() 函数用数组中的元素为一组变量赋值。
注意,与 array() 类似,list() 实际上是一种语言结构,不是函数。
*/
使用ob_flush()前,确保前面的内容大小足够4069字符。 一些Web服务器的output_buffering默认是4069字符或者更大,即输出内容必须达到4069字符服务器才会flush刷新输出缓冲,为了确保flush有效$sports = array(
'football' => 'good',
'swimming' => 'very well',
'running' => 'not www.111cn.net');
while ($elem = each($sports)) {
echo $elem['key'].": ".$elem['value']."<br />";
}
php教程 ob_flush flush 输出缓存实例与说明
*/
ob_flush();
//
flush();
//
function flush (){
echo(str_repeat(' ',256));
// check that buffer is actually set before flushing
if (ob_get_length()){
@ob_flush();
@flush();
@ob_end_flush();
}
@ob_start();
}
//str_repeat(string,repeat) 把字符串重复指定的次数。
//实例二
@apache_setenv('no-gzip', 1);
@ini_set('zlib.output_compression', 0);
@ini_set('implicit_flush', 1);
for ($i = 0; $i < ob_get_level(); $i++) { ob_end_flush(); }
ob_implicit_flush(1);
/*
使用注意事项:
flush和ob_flush的使用上有一些特别容易犯错的地方,造成无法刷新输出缓冲。
一. flush和ob_flush的正确顺序,正确应是,先ob_flush再flush,如下:
以下为引用的内容:
ob_flush();
flush();
如果web服务器的操作系统是windows系统,那顺序颠倒或者不使用ob_flush()也不会出现问题。但是在linux系统上就无法刷新输出缓冲。
二. 使用ob_flush()前,确保前面的内容大小足够4069字符。
一些web服务器的output_buffering默认是4069字符或者更大,即输出内容必须达到4069字符服务器才会flush刷新输出缓冲,为了确保flush有效
$array = array('aa'=>1,'bb'=>2);
function delete(&$array, $key)
{
if (!is_array($key)) {
$key = array($key);
}
foreach ($key as $k) {
unset($array[$k]);
}
$array = array_values($array);
}
print_r(array_values($array));print_r(delete($array,'aa'));
/*
unset();
该函数允许取消一个数组中的键名。要注意数组将不会重建索引。
$a = array( 1 => 'one', 2 => 'two', 3 => 'three' );
unset( $a[2] );
/* 将产生一个数组,定义为
$a = array( 1=>'one', 3=>'three');
而不是
$a = array( 1 => 'one', 2 => 'three');
清空整个数组
unset($arr);
4:清空指定元素
unset($arr[index]);
unset() 销毁指定的变量。注意在php 3 中,unset() 将返回true(实际上是整型值1),
而在php 4 中,unset() 不再是一个真正的函数:它现在是一个语句
相关文章
- eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
- 在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
Python astype(np.float)函数使用方法解析
这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08- 这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
- 本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
- 下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 有一种方法,可以不打开网站而直接查看到这个网站的源代码.. 这样可以有效地防止误入恶意网站... 在浏览器地址栏输入: view-source:http://...2016-09-20
- <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
- 本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
- 本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
- 本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
- php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
- CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
- php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p> </p> <p> </p> <form name="form1...2016-11-25
- 这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
Android开发中findViewById()函数用法与简化
findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20- 公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
- strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04
- 本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
- 其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08