phpurl重定向
‘壹’ thinkphp内核程序,无法重定向
ThinkPHP redirect 方法
ThinkPHP redirect 方法可以实现页面的重定向(跳转)功能。redirect 方法语法如下:
$this->redirect(string url, array params, int delay, string msg)
参数说明:
参数
说明
url 必须,重定向的 URL 表达式。
params 可选,其它URL参数。
delay 可选, 重定向延时,单位为秒。
msg 可选,重定向提示信息。
ThinkPHP redirect 实例
在 Index 模块 index 方法中,重定向到本模块的 select 操作:
class IndexAction extends Action{
public function index(){
$this->redirect('select', array('status'=>1), 3, '页面跳转中~');
}
}
重定向后得到的 URL 可能为ex.php/Index/select/status/1
由于该方法调用了 U 函数来生成实际的 URL 重定向地址,因此重定向后的 URL 可能因配置不同而有所不同:
隐藏了入口文件 index.php 的
5idev.com/Index/select/status/1
隐藏了入口文件 index.php 且设置了伪静态的
hom/Index/select/status/1.html
一些常用的 redirect 重定向例子:
// 不延时,直接重定向
$this->redirect('select', array('status'=>1));
// 延时跳转,但不带参数,输出默认提示
$thi www.hbbz08.com s->redirect('select', '', 3);
// 重定向到其他模块操作
$this->redirect('Public/login');
// 重定向到其他分组
$this->redirect('Admin-Public/login');
提示: 1.当延时跳转时,必须输入 params 参数(可以为空),也就是 delay 必须出现在第 3 位上。
2.如果发现跳转后的 URL 有问题,由于 redirect 方法调用 U 方法来生成跳转后的地址,这时候可以测试一下 U 方法生成的地址是否正确,再检查一下系统配置。
3.如果不想使用 U 方法生成跳转地址,可以直接使用 PHP header 函数或 $this->redirect 的原型函数 redirect(string url, int delay, string msg),注意该 url 是个绝对地址,具体参见 PHP header 函数。
redirect 重定向与 success/error 跳转的区别
•redirect 是使用的 PHP header 重定向,而 success/error 是使用的 html meta http-equiv='Refresh' 属性跳转。
•redirect 无模板页面,输出的提示信息是直接在函数内 echo 输出的,而 success/error 有对应的模板。
•redirect 与 success/error 都可以实现页面的跳转,只是 redirect 可以无延时重定向,具体采用哪种视具体情况而定。
‘贰’ php使用curl访问的页面中,出现重定向时, 如何获取重定向后的内容
程序没问题,能得到网页内容并输出。
有可能是你的 xxx.php 没有重定向成功。
如果在Linux下,可以先用
wget http://www.xxx.com/xxx.php
看看有没有输出想要的结果。
我用来测试的 xxx.php
<?php
function redirect($url)
{
if(headers_sent()) {
return false;
}
if(substr($url, 0, 4) != 'http') {
$schema = $_SERVER['SERVER_PORT'] == '443' ? 'https' : 'http';
$host = strlen($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
$url = "$schema://$host$to";
}
header("HTTP/1.1 301 Moved Permanently");
header("Location: $url");
exit();
}
redirect('http://google.com/');
‘叁’ 浅谈PHP跳转页面(重定向)的3种方法
用户登录功能时往往需要重定向页面,那么在PHP中如何重定向页面?下面本篇文章给大家介绍三种重定向网页跳转页面的方法。
第一种:利用header()函数进行重定向,这也是我用的较多的。(注意!locationhe和“:”之间不能有空格,否则无作用!)
第二种:利用HTML 头部中的 meta标签,定义http-equiv=refresh 和content=”跳转花费的时间(秒为单位);url=跳转地址”
或者
第三种:利用javascript进行跳转
推荐学习:《 PHP视频教程 》