PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数


Posted in PHP onJune 19, 2014

PHP 跳转,即重定向浏览器到指定的 URL,是一个很常见的功能。这种功能也有一些细节性的要求,比如等待多少秒以后跳转,用不用JavaScript实现跳转,等等。下面的跳转方法考虑到很多,并参数化,可以用到具体的项目当中。

<?php   
/**   
 * 重定向浏览器到指定的 URL   
 *   
 * @param string $url 要重定向的 url   
 * @param int $delay 等待多少秒以后跳转   
 * @param bool $js 指示是否返回用于跳转的 JavaScript 代码   
 * @param bool $jsWrapped 指示返回 JavaScript 代码时是否使用 <mce:script type="text/javascript"><!-- 
 标签进行包装   
 * @param bool $return 指示是否返回生成的 JavaScript 代码   
 */    
function redirect($url, $delay = 0, $js = false, $jsWrapped = true, $return = false)     
{     
  $delay = (int)$delay;     
  if (!$js) {     
    if (headers_sent() || $delay > 0) {     
      echo <<<EOT     
  <html>     
  <head>     
  <meta http-equiv="refresh" content="{$delay};URL={$url}" />     
  </head>     
  </html>     
EOT;     
      exit;     
    } else {     
      header("Location: {$url}");     
      exit;     
    }     
  }     
    
  $out = '';     
  if ($jsWrapped) {     
    $out .= '<script language="JavaScript" type="text/javascript">';     
  }     
  $url = rawurlencode($url);     
  if ($delay > 0) {     
    $out .= "window.setTimeOut(function () { document.location='{$url}'; }, {$delay});";     
  } else {     
    $out .= "document.location='{$url}';";     
  }     
  if ($jsWrapped) {     
    $out .= ' 
// --></mce:script>';     
  }     
    
  if ($return) {     
    return $out;     
  }     
    
  echo $out;     
  exit;     
}    
?>
PHP 相关文章推荐
php 魔术方法使用说明
Oct 20 PHP
php性能优化分析工具XDebug 大型网站调试工具
May 22 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
Jun 29 PHP
php MessagePack介绍
Oct 06 PHP
php 判断服务器操作系统的类型
Feb 17 PHP
php树型类实例
Dec 05 PHP
php+xml实现在线英文词典查询的方法
Jan 23 PHP
php自定义urlencode,urldecode函数实例
Mar 24 PHP
php自动更新版权信息显示的方法
Jun 19 PHP
PHP基于自定义类随机生成姓名的方法示例
Aug 05 PHP
PHP设计模式之抽象工厂模式实例分析
Mar 25 PHP
laravel model 两表联查示例
Oct 24 PHP
ThinkPHP3.1基础知识快速入门
Jun 19 #PHP
php计算两个日期时间差(返回年、月、日)
Jun 19 #PHP
php使用百度ping服务代码实例
Jun 19 #PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
Jun 19 #PHP
PHP采集类Snoopy抓取图片实例
Jun 19 #PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
Jun 19 #PHP
PHP mkdir()无写权限的问题解决方法
Jun 19 #PHP
You might like
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
windows7下php开发环境搭建图文教程
2015/01/06 PHP
codeigniter实现get分页的方法
2015/07/10 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
2016/07/25 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
jQuery使用一个按钮控制图片的伸缩实现思路
2013/04/19 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
2016/05/09 Javascript
基于jQuery实现仿百度首页选项卡切换效果
2016/05/29 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
2016/07/04 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
Javascript 实现放大镜效果实例详解
2016/12/03 Javascript
利用Bootstrap实现表格复选框checkbox全选
2016/12/21 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
Python 命令行参数sys.argv
2008/09/06 Python
Python中time模块和datetime模块的用法示例
2016/02/28 Python
详解python异步编程之asyncio(百万并发)
2018/07/07 Python
mac下如何将python2.7改为python3
2018/07/13 Python
使用python将图片格式转换为ico格式的示例
2018/10/22 Python
在pycharm创建scrapy项目的实现步骤
2020/12/01 Python
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
光电信息专业应届生求职信
2013/10/07 职场文书
项目经理岗位职责
2013/11/11 职场文书
播音主持女孩的自我评价分享
2013/11/20 职场文书
圣诞节红领巾广播稿
2014/02/03 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
在职证明书模板
2015/06/15 职场文书
2016党校培训心得体会
2016/01/07 职场文书