header() 301重定向实现代码

 更新时间:2016年11月25日 16:48  点击:2096

先来看一个实例,

header('location: http://www.111cn.net/');

上面是简单的调跳,我们要做永久转向怎么做呢。如下。


语法
header(string,replace,http_response_code)参数 描述
string 必需。规定要发送的报头字符串。
replace 可选。指示该报头是否替换之前的报头,或添加第二个报头。

默认是 true(替换)。false(允许相同类型的多个报头)。
 
http_response_code 可选。把 http 响应代码强制为指定的值。(php教程 4 以及更高版本可用)


其它中 http_response_code 就是我们要写的301代码了,如下.


$url = "http://www.111cn.net";
header("http/1.1 301 moved permanently");
header("location: $url");
exit();

注释:从 php 4.4 之后,该函数防止一次发送多个报头。这是对头部注入攻击的保护措施。

参数中的数组被当成一个表的列并以行来进行排序 - 这类似 sql 的 order by 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行排序,依此类推。

 

<?php教程
$a1=array("dog","cat");
$a2=array("fido","missy");
array_multisort($a1,$a2);
print_r($a1);
print_r($a2);
?>输出:

array ( [0] => cat [1] => dog )
array ( [0] => missy [1] => fido )


例子 6. 名次排列

<?php
$grade = array("score" => array(70, 95, 70.0, 60, "70"),
               "name" => array("zhang san", "li si", "wang wu",
                               "zhao liu", "liu qi"));
array_multisort($grade["score"], sort_numeric, sort_desc,
                // 将分数作为数值,由高到低排序
                $grade["name"], sort_string, sort_asc);
                // 将名字作为字符串,由小到大排序
var_dump($grade);
?> 

上例将输出:

array(2) {
  ["score"]=>
  array(5) {
    [0]=>
    int(95)
    [1]=>
    string(2) "70"
    [2]=>
    float(70)
    [3]=>
    int(70)
    [4]=>
    int(60)
  }
  ["name"]=>
  array(5) {
    [0]=>
    string(5) "li si"
    [1]=>
    string(6) "liu qi"
    [2]=>
    string(7) "wang wu"
    [3]=>
    string(9) "zhang san"
    [4]=>
    string(8) "zhao liu"
  }
}


 

多维数组排序:

<?php
$arr = array (array (1, 2, 3, 4), array ("a", "b", "b", "d"));
array_multisort($arr[0], sort_desc, $arr[1], sort_asc);
print_r($arr);
?>
运行该例子输出:

array
(
    [0] => array
        (
            [0] => 4
            [1] => 2
            [2] => 2
            [3] => 1
        )
 
    [1] => array
        (
            [0] => d
            [1] => b
            [2] => c
            [3] => a
        )
)


array_multisort() 函数对多个数组或多维数组进行排序。

一般最简单就是字符替换了

如:str_replace("#", "-", "dizaz#7#final"),

更高级的就是保存数据替换了。

str_replace(array('#', '$'), "-", "dizaz#7$final") 等,就这些调用方式,

其它这些方法在php教程中最非常简单的,还有就是数组替换数据

str_repace( array(1,2,3,4,5),'',array(6,7,8,9,10));

这就是替换函数哦。

$object = "dizaz#7#final";
$res = str_replace("#", "-", $object);
echo $res;

call_user_func函数的注意事项

parse error: syntax error, unexpected t_list, expecting t_string in

今天在使用这个函数的时候一直提示上述问题。参看官方的手册也没有介绍使用其的注意事项。

附:
mixed call_user_func ( callback $function [, mixed $parameter [, mixed $... ]] )
可以传递任何内置的或者用户自定义的函数,除了语言结构如array(),echo(),empty(),eval(),exit(),isset(),list(),print() 和 unset()。

本人的问题就是在对象中存在一个叫list的方法名。故其和php教程的语言结构list()起冲突了。

看实例应用

call_user_func函数类似于一种特别的调用函数的方法,使用方法如下:    
function  a($b,$c)    
{  
echo  $b;  
echo  $c;  
}  
call_user_func('a',  "111","222");  
call_user_func('a',  "333","444");  
//显示  111  222  333  444  
?>

  

调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也是满有新意的:  
class  a  {  
function  b($c)    
{  
echo  $c;  
}  
}  
call_user_func(array("a",  "b"),"111");  
//显示  111  
?>

  

call_user_func_array函数和call_user_func很相似,只不过是换了一种方式传递了参数,让参数的结构更清晰:  
function  a($b,  $c)    
{  
echo  $b;  
echo  $c;

  

}  
call_user_func_array('a',  array("111",  "222"));  
//显示  111  222  
?>

 

$_files["file"]["name"] - 被上传文件的名称
$_files["file"]["type"] - 被上传文件的类型
$_files["file"]["size"] - 被上传文件的大小,以字节计
$_files["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_files["file"]["error"] - 由文件上传导致的错误代码

 

<html>
<body>

<form action="upload_file.php教程" method="post"
enctype="multipart/form-data">
<label for="file">filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="submit" />
</form>

</body>
</html>

php代码

<?php

if ((($_files["file"]["type"] == "image/gif")
|| ($_files["file"]["type"] == "image/jpeg")
|| ($_files["file"]["type"] == "image/pjpeg"))
&& ($_files["file"]["size"] < 20000))
  {
  if ($_files["file"]["error"] > 0)
    {
    echo "error: " . $_files["file"]["error"] . "<br />";
    }
  else
    {
    echo "upload: " . $_files["file"]["name"] . "<br />";
    echo "type: " . $_files["file"]["type"] . "<br />";
    echo "size: " . ($_files["file"]["size"] / 1024) . " kb<br />";
    echo "stored in: " . $_files["file"]["tmp_name"];
    }
  }
else
  {
  echo "invalid file";
  }

?>

$_files数组内容如下:
$_files['myfile']['name'] 客户端文件的原名称。
$_files['myfile']['type'] 文件的 mime 类型,需要浏览器提供该信息的支持,例如"image/gif"。
$_files['myfile']['size'] 已上传文件的大小,单位为字节。
$_files['myfile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的。
$_files['myfile']['error'] 和该文件上传相关的错误代码。['error'] 是在 php 4.2.0 版本中增加的。下面是它的说明:(它们在php3.0以后成了常量)
upload_err_ok
值:0; 没有错误发生,文件上传成功。
upload_err_ini_size
值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
upload_err_form_size
值:2; 上传文件的大小超过了 html 表单中 max_file_size 选项指定的值。
upload_err_partial
值:3; 文件只有部分被上传。
upload_err_no_file
值:4; 没有文件被上传。
值:5; 上传文件大小为0.

[!--infotagslink--]

相关文章

  • Element PageHeader页头的使用方法

    这篇文章主要介绍了Element PageHeader页头的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-27
  • Spring Boot项目@RestController使用重定向redirect方式

    这篇文章主要介绍了Spring Boot项目@RestController使用重定向redirect方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-02
  • cmd命令的重定向输出 2>&1详解

    这篇文章主要介绍了cmd命令的重定向输出 2>&1详解,需要的朋友可以参考下...2020-08-28
  • apache实现http重定向到https

    老谢目前做了一个新站,全站采用https协议访问,所以需要http重定向到https,只需要在.htaccess加入下面规则既可: 代码如下 复制代码 RewriteEngine On Rew...2016-01-28
  • PHP中header()函数有什么用?常见header 状态

    在php中header()函数是很大的作用可以发送各种状态代码,也可以实现一些输出下载,下面我们一起来看看一些相关实例吧。 什么是头信息? 这里只作简单解释,详细的自己看...2016-11-25
  • DOS的重定向命令使用方法以及在安全方面的应用

    大家知道,DOS下有一个不为大家所常用的命令——重定向命令,这个小东西非常有用,灵活的使用这个命令可以给我们带来很大的方便——无论是入侵还是防守抑或是系统应用,都会带来很大的便利,今天就让 我们来看几个重定向命令在安全方面的应用实例...2020-06-30
  • 详解nginx配置url重定向-反向代理

    这篇文章主要介绍了详解nginx配置url重定向-反向代理 ,nginx的重定向和nginx的反向代理的原理还是有区别的。有兴趣的可以了解一下。...2016-12-31
  • js实现页面跳转重定向的几种方式

    第一种: 复制代码 代码如下: <script language="javascript"type="text/javascript"> window.location.href="http://shanghepinpai.com"; </script> 第二种: 复制代码 代码如下: <script language="javascript"> aler...2014-05-31
  • ASP.NET MVC3 实现全站重定向的简单方法

    这篇文章主要介绍了ASP.NET MVC3 实现全站重定向的简单方法,有需要的朋友可以参考一下...2021-09-22
  • IIS服务器下做301永久重定向设置方法[图解]

    以前也没怎么关注301重定向,第一因为没有网站要重定向,第二对于不带www的域名我都是用的转发到带www的域名。...2016-01-27
  • Windows cmd命令行输入输出重定向问题

    这篇文章主要介绍了Windows cmd命令行输入输出重定向问题,需要的朋友可以参考下...2020-06-30
  • php实现301永久重定向和302临时重定向方法

    在服务器中301与302对于搜索引擎来讲一个是永久的跳新的地址了,一个是告诉你暂时到了一个新地址了,那么我们在php中怎么实现301永久重定向和302临时重定向呢,下面我们一...2016-11-25
  • [译]ASP.NET Core 2.0 网址重定向的方法

    本篇文章主要介绍了[译]ASP.NET Core 2.0 网址重定向的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2021-09-22
  • 详细聊聊Spring MVC重定向与转发

    大家应该都知道请求重定向和请求转发都是web开发中资源跳转的方式,这篇文章主要给大家介绍了关于Spring MVC重定向与转发的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下...2021-09-07
  • springboot如何重定向携带数据 RedirectAttributes

    这篇文章主要介绍了springboot如何重定向携带数据 RedirectAttributes,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-16
  • Nginx下配置301重定向的正确方法例子

    这篇文章主要介绍了Nginx下配置301重定向的正确方法例子,本文给出了常用的配置方法例子和正确的配置例子,需要的朋友可以参考下...2016-01-27
  • php中header函数后是否应该有exit

    php header后是否需要书写exit以终止程序,以前一直没有太在意,今天遇到个bug,才发现这还是个问题,特意写了段代码测试了一下,代码如下: 通常有一下三种: ...2016-11-25
  • 详解 Nginx 301重定向的配置

    这篇文章主要介绍了详解 Nginx 301重定向的配置的相关资料,需要的朋友可以参考下...2017-07-06
  • c/c++输出重定向的方法

    c/c++输出重定向的方法,需要的朋友可以参考一下...2020-04-25
  • IIS 7中如何实现http重定向https

    这篇文章主要介绍了IIS 7中如何实现http重定向https,需要的朋友可以参考下...2017-07-06