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用mysql数据库存储session的代码
Mar 05 PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 PHP
php excel reader读取excel内容存入数据库实现代码
Dec 06 PHP
深入apache配置文件httpd.conf的部分参数说明
Jun 28 PHP
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
Jan 14 PHP
thinkphp模板继承实例简述
Nov 26 PHP
PHP伪造来源HTTP_REFERER的方法实例详解
Jul 06 PHP
phalcon框架使用指南
Feb 23 PHP
php将一维数组转换为每3个连续值组成的二维数组
May 06 PHP
数组任意位置插入元素,删除特定元素的实例
Mar 02 PHP
php readfile下载大文件失败的解决方法
May 22 PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
Oct 17 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
使用GD库生成带阴影文字的图片
2015/03/27 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
PHP程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
PHP基于swoole多进程操作示例
2019/08/12 PHP
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
详谈js对url进行编码和解码(三种方式的区别)
2017/08/16 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
vue组件生命周期详解
2017/11/07 Javascript
微信小程序实现上传图片裁剪图片过程解析
2019/08/22 Javascript
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
python网络编程学习笔记(四):域名系统
2014/06/09 Python
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
Python+微信接口实现运维报警
2016/08/27 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
spark: RDD与DataFrame之间的相互转换方法
2018/06/07 Python
Django多数据库的实现过程详解
2019/08/01 Python
python2爬取百度贴吧指定关键字和图片代码实例
2019/08/14 Python
python sqlite的Row对象操作示例
2019/09/11 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
keras load model时出现Missing Layer错误的解决方式
2020/06/11 Python
Appium+Python实现简单的自动化登录测试的实现
2021/01/26 Python
Waterford英国官方网站:世界上最受欢迎的优质水晶品牌
2019/08/17 全球购物
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
汽车专业人才自我鉴定范文
2013/12/29 职场文书
红领巾广播站广播稿
2014/02/01 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
2015年话务员工作总结
2015/04/29 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
一波干货,会议主持词开场白范文
2019/05/06 职场文书
Java 中的 Unsafe 魔法类的作用大全
2021/06/26 Java/Android