php将请求转发,PHP中实现请求转发(curl)和请求重定向

来源:csdn博客 分类: 文章浏览史 发布时间:2022-02-27 11:28:41 最后更新:2022-02-27 浏览:252
转载声明:
本文为摘录自“csdn博客”,版权归原作者所有。
温馨提示:
为了更好的体验,请点击原文链接进行浏览
摘录时间:
2022-02-27 11:28:41

一.请求重定向 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重定向到另外一个页面的方法如下:

$url="www.baidu.com";

if (!empty($url))

{

Header("HTTP/1.1 303 See Other"); //这条语句可以不写

Header("Location: $url");

}

?>

注意一下,"Localtion:"后面有一个空格。

2、用HTML标记PHP重定向

用HTML标记,就是用META的REFRESH标记,举例如下:

if (!empty($url))

{

echo "";

}

?>

3、用脚本来实现PHP重定向

举例如下:

if(isset($url))

{

echo "";

echo "location.href='$url'";

echo "";

}

?>

或者

<?phpecho  "

二.请求转发

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都不变化

php技术微信