header()设置浏览器的缓存与header语法

 更新时间:2016年11月25日 15:11  点击:1894

定义和用法
header() 函数向客户端发送原始的 http 报头。

认识到一点很重要,即必须在任何实际的输出被发送之前调用 header() 函数(在 php教程 4 以及更高的版本中,您可以使用输出缓存来解决此问题):

<html>

实例一

 代码如下 复制代码
<?php # script 2.7 - view_tasks.php
// connect to the database:
$dbc = @mysql教程i_connect ('localhost', 'username', 'password', 'test') or die ('<p>could not connect to the database!</p></body></html>');
// get the latest dates as timestamps教程:
$q = 'select unix_timestamp(max(date_added)), unix_timestamp(max(date_completed)) from tasks';
$r = mysqli_query($dbc, $q);
list($max_a, $max_c) = mysqli_fetch_array($r, mysqli_num);
// determine the greater timestamp:
$max = ($max_a > $max_c) ? $max_a : $max_c;
// create a cache interval in seconds:
$interval = 60 * 60 * 6; // 6 hours
// send the header:
header ("last-modified: " . gmdate ('r', $max));
header ("expires: " . gmdate ("r", ($max + $interval)));
header ("cache-control: max-age=$interval");
?>

实例二

 代码如下 复制代码

<?php
// 结果出错
// 在调用 header() 之前已存在输出
header('location: http://www.111cn.net/');
?>语法
header(string,replace,http_response_code)

提示用户保存一个生成的 pdf 文件(content-disposition 报头用于提供一个推荐的文件名,并强制浏览器显示保存对话框):

 代码如下 复制代码

<?php
header("content-type:application/pdf");

// 文件将被称为 downloaded.pdf
header("content-disposition:attachment;filename='downloaded.pdf'");

// pdf 源在 original.pdf 中
readfile("original.pdf");
?>

<html>
<body>

本教程提供了三款获取上传文件与图片类型的方法,方法也是很简单的前二种,是先把类型定义好,再用in_array判断,最后一步是利用了fopen再读取前二个字节,判断。
 代码如下 复制代码

//获得图片的格式,包括jpg,png,gif
function get_type($img_name)//获取图像文件类型
{
 if (preg_match("/.(jpg|jpeg|gif|png|bmp)$/i", $img_name, $matches)){
  $type = strtolower($matches[1]);
 }else{
  $type = "string";
 }
 return $type;
}

//判断上传文件类型
$allowedextensions = array("txt","csv","htm","html","xml",  
    "css教程","doc","xls","rtf","ppt","pdf","swf","flv","avi",  
    "wmv","mov","jpg","jpeg","gif","png");   
    foreach ($_files as $file) {  
    if ($file['tmp_name'] > '') {  
      if (!in_array(end(explode(".",  
            strtolower($file['name']))),  
            $allowedextensions)) {  
       die($file['name'].' is an invalid file type!<br/>'.  
        '<a href="网页特效:history.go(-1);">'.  
        '&lt;&lt go back</a>');  
      }  
}  
}  

//另类的读取文件与图片类型

function checktitle($filename) {
$file     = fopen($filename, "rb");
$bin      = fread($file, 2); //只读2字节
fclose($file);
$strinfo  = @unpack("c2chars", $bin);
$typecode = intval($strinfo['chars1'].$strinfo['chars2']);
$filetype = "";
switch ($typecode)
{
 case 7790:
 $filetype = 'exe';
 break;
 case 7784:
 $filetype = 'midi';
 break;
 case 8297:
 $filetype = 'rar';
 break;
 case 255216:
 $filetype = 'jpg';
 break;
 case 7173:
 $filetype = 'gif';
 break;
 case 6677:
 $filetype = 'bmp';
 break;
 case 13780:
 $filetype = 'png';
 break;
 default:
 $filetype = 'unknown'.$typecode;
}
//fix
if ($strinfo['chars1']=='-1' && $strinfo['chars2']=='-40' ) {
return 'jpg';
}
if ($strinfo['chars1']=='-119' && $strinfo['chars2']=='80' ) {
return 'png';
}
return $filetype;
}

 

?>

 代码如下 复制代码

<script language="网页特效">
    function checkreg()
    {    
  if (form1.name.value=="")
  {
   // 如果真实姓名为空,则显示警告信息
         alert("真实姓名不能为空!");
   form1.name.focus();
   return false;
     }
  if (form1.password.value=="" )
  {
   // 如果密码为空,则显示警告信息
         alert("密码不能为空!");
   form1.password.focus();
   return false;
     }
  if (form1.pwd.value=="" )
  {
   // 如果密码为空,则显示警告信息
         alert("确认密码不能为空!");
   form1.pwd.focus();
   return false;
     }
  // 两次密码应一样
  if (form1.password.value!=form1.pwd.value && form1.password.value!="")
  {
   alert("两次密码不一样,请确认!");
   form1.password.focus();
   return false;
  }
  if (form1.email.value=="")
  {
   // 如果email为空,则显示警告信息
         alert("email不能为空!");
   form1.email.focus();
   return false;
     }
   // 检查email格式是否正确
  else if (form1.email.value.charat(0)=="." ||
   form1.email.value.charat(0)=="@"||
   form1.email.value.indexof('@', 0) == -1 ||
   form1.email.value.indexof('.', 0) == -1 ||
   form1.email.value.lastindexof("@")==form1.email.value.length-1 ||
   form1.email.value.lastindexof(".")==form1.email.value.length-1)
  {
   alert("email的格式不正确!");
   form1.email.select();
   return false;
  }
  return true;

    } 
</script>

<html>
<body>

<form name="form1" method="post" action="regok.php" enctype='multipart/form-data' onsubmit="return checkreg()" >
  <table border="0" cellspacing="1" cellpadding="3" align="center">
    <tr>
      <th colspan="2"><font size="5">用 户 注 册 界 面</font></th>
    </tr>   
    <tr>
      <td>姓   名:</td>
      <td>
        <input type="text" name="name">
    </tr>
    <tr>
      <td>密   码:</td>
      <td>
        <input type="password" name="password">       
    </tr>
 <tr>
      <td>确认密码:</td>
      <td>
        <input type="password" name="pwd">       
    </tr>
 <tr>
      <td>email:</td>
      <td>
        <input type="text" name="email">       
    </tr>
  <tr>
      <td>电   话:</td>
      <td>
        <input type="text" name="tel">
    </tr>
 <tr>
      <td>地   址:</td>
      <td>
        <input type="text" name="address">
    </tr>   
    <tr>
      <td  align=right >
        <input type="submit" name="submit" value="注 册">
      </td>
      <td align=center>
        <input type="reset" name="submit2" value="重 写">
      </td>
    </tr>
  </table>
</form>

</body>

</html>

<?php

 代码如下 复制代码

//初始化session
session_start();
// 包含数据库教程连接文件和头文件
$conn=mysql教程_connect("localhost","phpdb","phpdb")
        or die("不能连接数据库服务器: ".mysql_error());
mysql_select_db("book",$conn) or die ("不能选择数据库: ".mysql_error());
?>
<?php
// 取得网页的参数
$name=$_post['name'];
$password=$_post['password'];
$email=$_post['email'];
$tel=$_post['tel'];
$address=$_post['address'];

// 加密密码
$password=md5($password);

// 连接数据库,注册用户
$sql="insert into user(name, password, email, tel, address) values('$name','$password','$email', '$tel','$address')";
mysql_query($sql,$conn) or die ("注册用户失败: ".mysql_error());

// 获得注册用户的自动id,以后使用此id才可登录
$result=mysql_query("select last_insert_id()",$conn);
$re_arr=mysql_fetch_array($result);
$id=$re_arr[0];

// 注册成功,自动登录,注册session变量
session_register("user");
$user=$id;
echo "<table align=center><tr><td align=center>注册成功!</td></tr>";
echo "<tr><td align=center><font color=red>您的注册id是:".$id;
echo ",请您记住,以后用此id登录!</font></td></tr></table>";

本款php教程是一款告诉你如何连接和选择数据库并且利用php把数据保存,删除,修改,更新,查询 mysql数据库的php入级教程。

*/

 代码如下 复制代码

// 连接和选择数据库
$conn=mysql_connect("localhost","phpdb","phpdb")
        or die("不能连接数据库服务器: ".mysql_error()); 
mysql_select_db("test",$conn) or die ("不能选择数据库: ".mysql_error()); 
// 插入记录部分
// 编辑插入记录的sql语句
$insertsql="insert into user(name,password,address,tel,email) values('王强','123','深圳','8163445','wang@wel.com')";
// 执行插入操作
$insert = mysql_query($insertsql,$conn);
// 检测插入操作是否成功
if ($insert){
 echo "插入记录成功!";
 echo "<br>";
}
else
{
 echo "插入记录失败!";
 echo "<br>";
}

// 修改记录部分
// 编辑修改记录的sql语句
$updatesql="update set tel='1234567' from user where name='王强'";
// 执行修改操作
$update = mysql_query($updatesql,$conn);
// 检测修改操作是否成功
if ($update){
 echo "修改记录成功!";
 echo "<br>";
}
else
{
 echo "修改记录失败!";
 echo "<br>";
}

// 删除记录部分
// 编辑删除记录的sql语句
$deletesql="delete from user where name='王强'";
// 执行删除操作
$delete = mysql_query($deletesql,$conn);
// 检测删除操作是否成功
if ($delete){
 echo "删除记录成功!";
 echo "<br>";
}
else
{
 echo "删除记录失败!";
 echo "<br>";
}

/*
use test;
create table users (
   id int(3) not null auto_increment,
   name varchar(20) not null,
   password varchar(50) not null,
   address varchar(50),
   tel varchar(20),
   email varchar(50) not null,
   primary key (id)
);
*'

?>

 代码如下 复制代码

 <html>
<head>
<title>php教程入门教程:利用表单调查表实例</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#ffffff">

<?php
// 定义显示表单函数
function display_form() {

global $php_self;

?>
<form action="<?php echo $php_self; ?>"method=post>
名字: <input type=text name="name"><br>
单项选择:
<input type=radio name="first" value="我很笨">我很聪明
<input type=radio name="first" value="我非常笨">我很笨
<input type=radio name="first" value="我简直就是个傻冒"> 我简直就是个傻冒 <br>

多项选择:
<input type=checkbox name="second[]" value="我喜欢打蓝球">我喜欢打蓝球
<input type=checkbox name="second[]" value="我喜欢游泳">我喜欢游泳
<input type=checkbox name="second[]" value="我喜欢跳舞">我喜欢跳舞
<input type=checkbox name="second[]" value="我喜欢爬山">我喜欢爬山
<input type=hidden name="stage" value= "results"><p>
<input type=submit value= "谢谢"></p>
</form>

<?php
}
?>

//程序开始

<?php

 代码如下 复制代码

// 定义处理表单函数
function process_form()
{
global $name ;
global $first;
global $second;

if ($first == '我很笨') {
 $first_message = '你不笨。';
}
elseif ($first == '我很聪明') {
 $first_message = '你不聪明。';
}
else {
 $first_message = '你简直就象是一个聪明的人了。';
}

$favorite_second = count($second);
if ($favorite_second <= 1)

 $second_message = '但你做错事了,忏悔吧!';
}
elseif ($favorite_second > 1 && $favorite_second < 4)
{
 $second_message = '你是只爱运动的的猩猩。';
}
else {
 $second_message = '你运动的太多了,对猩猩来讲已经过量:(';
}

echo "这是一项针对猩猩的测试:<br><br>";
echo "你好! 你的名字叫:$name. <br><br>";
echo "你的测验结果是。。。。。$first_message $second_message";
}
?>

<?php
if (empty($stage)) { display_form(); }
else { process_form(); }
?>

</body>
</html>

[!--infotagslink--]

相关文章

  • JavaScript判断浏览器及其版本信息

    本篇文章主要分享了通过window.navigator来判断浏览器及其版本信息的实例代码。具有一定的参考价值,下面跟着小编一起来看下吧...2017-01-23
  • c#自带缓存使用方法 c#移除清理缓存

    这篇文章主要介绍了c#自带缓存使用方法,包括获取数据缓存、设置数据缓存、移除指定数据缓存等方法,需要的朋友可以参考下...2020-06-25
  • js实现浏览器打印功能的示例代码

    这篇文章主要介绍了js如何实现浏览器打印功能,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-15
  • IDEA中的clean,清除项目缓存图文教程

    这篇文章主要介绍了IDEA中的clean,清除项目缓存图文教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-25
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • Element PageHeader页头的使用方法

    这篇文章主要介绍了Element PageHeader页头的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-27
  • js代码判断浏览器种类IE、FF、Opera、Safari、chrome及版本

    第一种,只区分浏览器,不考虑版本 复制代码 代码如下:function myBrowser(){ var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 var isOpera = userAgent.indexOf("Opera") > -1; if (isOp...2014-05-31
  • 详解Vue Cli浏览器兼容性实践

    这篇文章主要介绍了详解Vue Cli浏览器兼容性实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-09
  • iOS蓝牙设备名称缓存问题的解决方法

    这篇文章主要给大家介绍了关于iOS蓝牙设备名称缓存问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08
  • AngularJS实现Model缓存的方式

    这篇文章主要介绍了AngularJS实现Model缓存的方式,分享了多种AngularJS实现Model缓存的方法,感兴趣的小伙伴们可以参考一下...2016-02-05
  • 如何使用 JavaScript 操作浏览器历史记录 API

    这篇文章主要介绍了如何使用 JavaScript 操作浏览器历史记录 API,帮助大家更好的理解和使用JavaScript,感兴趣的朋友可以了解下...2020-11-24
  • Python获取浏览器窗口句柄过程解析

    这篇文章主要介绍了Python获取浏览器窗口句柄过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-26
  • vue如何调用浏览器分享功能详解

    这篇文章主要给大家介绍了关于vue如何调用浏览器分享的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-20
  • js判断浏览器类型,版本的代码(附多个实例代码)

    在网站前端开发中,浏览器兼容性问题本已让我们手忙脚乱,Chrome的出世不知道又要给我们添多少乱子。浏览器兼容性是前端开发框架要解决的第一个问题,要解决兼容性问题就得首先准确判断出浏览器的类型及其版本。 JavaScrip...2014-05-31
  • Nodejs下DNS缓存问题浅析

    本文给大家一起探讨nodejs下dns的缓存问题,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧...2016-11-22
  • JAVA读取文件流,设置浏览器下载或直接预览操作

    这篇文章主要介绍了JAVA读取文件流,设置浏览器下载或直接预览操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-09
  • @CacheEvict + redis实现批量删除缓存

    这篇文章主要介绍了@CacheEvict + redis实现批量删除缓存方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-12
  • python怎么删除缓存文件

    在本篇文章里小编给大家整理的是一篇关于python删除缓存文件方法,需要的朋友们可以学习下。...2020-07-19
  • 网页自动调用国内双核浏览器的极速模式的实现方法

    由于国内好几个浏览器都是双核浏览器(蛋痛,做一个浏览器壳就说国产,而且使用率高),有时打开网页会出现不兼容模式,在极速模式下是好的,现在我们来用代码实现网页自动调用国内...2016-09-20
  • C# 模拟浏览器并自动操作的实例代码

    这篇文章主要介绍了C# 模拟浏览器并自动操作的实例代码,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-11-03