一.请求重定向 1 、 用HTTP头信息 也就是用PHP的HEADER函数。PHP里的HEADER函数的作用就是向浏览器发出由HTTP协议规定的本来应该通过WEB服务器的控制指令,例如声明返回信息的类型(Context-type: xxx/xxx),页面的属性(No cache, Expire)等等。 用HTTP头信息
一.请求重定向
1、用HTTP头信息
也就是用PHP的HEADER函数。PHP里的HEADER函数的作用就是向浏览器发出由HTTP协议规定的本来应该通过WEB服务器的控制指令,例如声明返回信息的类型("Context-type: xxx/xxx"),页面的属性("No cache", "Expire")等等。
用HTTP头信息进行PHP重定向到另外一个页面的方法如下:
<ol> <li><span><strong><span><span></span><span>php</span></span></strong><span> </span></span></li> <li> <span>$</span><span>url</span><span> = </span><span>"www.baidu.com"</span><span>; </span> </li> <li><span>if (!empty($url)) </span></li> <li><span>{ </span></li> <li><span> Header("HTTP/1.1 303 See Other"); //这条语句可以不写 </span></li> <li><span> Header("Location: $url"); </span></li> <li><span>} </span></li> <li> <span><strong><span>?></span></strong></span><span> </span> </li> </ol>
注意一下,"Localtion:"后面有一个空格。
2、用HTML标记PHP重定向
用HTML标记,就是用META的REFRESH标记,举例如下:
<ol> <li><span><strong><span><span></span><span>php</span></span></strong><span> </span></span></li> <li><span>if (!empty($url)) </span></li> <li><span>{ </span></li> <li> <span> echo "</span><strong><span><span><span>META</span></span></span></strong><span> </span><span>HTTP-EQUIV</span><span>=\"Refresh\" </span><span>CONTENT</span><span>=\"0;</span><span>URL</span><span>=$url\"</span><span><strong><span>></span></strong></span><span>"; </span> </li> <li><span>} </span></li> <li> <span><strong><span>?></span></strong></span><span> </span> </li> </ol>
3、用脚本来实现PHP重定向
举例如下:
<ol> <li><span><span><strong><span></span></strong></span><span> </span></span></li> <li> <span>if</span><span> (isset($url)) </span> </li> <li><span>{ </span></li> <li> <span> echo "</span><strong><span><span><span>SCRIPT</span></span></span></strong><span> </span><span>LANGUAGE</span><span>=</span><span>"JavaScript"</span><span><strong><span>></span></strong></span><span>"; </span> </li> <li> <span> echo "</span><span>location.href</span><span>=</span><span>'$url'</span><span>"; </span> </li> <li> <span> echo "</span><strong><span><span></span><span>SCRIPT</span><span>></span></span></strong><span>"; </span> </li> <li><span>} </span></li> <li> <span><strong><span>?></span></strong></span><span> </span> </li> </ol>
<ol><li><span><strong><span><span></span><span>php</span></span></strong><span> echo "</span><strong><span><span><span>script</span><span>></span></span></span></strong><span><span>window.location</span></span><span> =\"$url\";</span><strong><span><span></span><span>script</span><span>></span></span></strong><span>";</span><span><strong><span>?></span></strong></span><span> </span></span></li></ol>
二.请求转发
PHP使用curl来进行请求转发
1.给PHP安装和开启curl
一、window下安装php_curl支持
1.将PHP安装文件夹下的三个文件php_curl.dll(可能在ext文件夹中),libeay32.dll,ssleay32.dll 复制到 %windir%/system32下;
2.打开php.ini(可能在PHP环境的安装目录下,默认在c:\WINDOWS目录下),将;extension=php_curl.dll头部的分号去掉;
3.重启php的服务(apache或者IIS),如重启IIS,运行iisreset即可。
二、linux中php如何安装curl扩展
如果php已经在系统编译好,后来又需要添加新的扩展,一种方式就是重新完全编译php,另一种方式就是单独编译扩展库,以extension的形式扩展。
情况一:全新安装php 和curl
首先下载curl安装包(我的php是4.4.4的,下载最新的curl 7.16 不能使用,最后下载7.14的才可以,下载要注意一下版本)
然后安装cURL
# tar -zxf (此处填下载的curl包名称) # ./configure –prefix=/usr/local/curl # make; make install
安装php时,只要打开开关 –with-curl=/usr/local/curl就可以了。
php要求curl的目录要有include和lib目录,并且include下要有easy.h和curl.h两个文件,lib下要有libcurl.a。经编译后include下的文件有了,但是lib目录下可能还没有。原来生成到lib/.libs目录下,所以要copy到lib目录。
情况二:已经安装了php,现在需要添加这个扩展
进入安装原php的源码目录,(如果删了,但是还有原来的压缩文件的话,重新解压就行)
cd ext/curl phpize ./configure –with-curl=DIR (可以不写dir,如果你的curl安装时没有指定目录) make
就会在PHPDIR/ext/curl/moudles/下生成curl.so的文件。
复制curl.so文件到extensions的配置目录,修改php.ini就好了
以上两种就是Linux下php扩展cURL的安装方法。
2.cURL实现Get和Post请求的方法 相关实现方法的文章链接:脚本之家
但仔细发现,用curl实现的请求转发和用JSP里的request.getrequestdispatcher请求转发不一样
例如:
a.php里实现了curl请求,实际上是a.php页面向其他页面请求,然后把响应内容输出在a.php页面里,调用完curl后,a.php还能再做别的事情
但JSP不同,jsp中实现请求转发后,例如:a.jsp请求转向到b.jsp,那么就会停止执行当前的a.jsp,转而执行被转发的资源b.jsp相同的是a.php与a.jsp上的URL都不变化