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 向访客和爬虫显示不同的内容
Nov 09 PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
Feb 05 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
Jul 15 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
Jun 28 PHP
PHP_Cooikes不同页面无法传递的解决方法
Mar 07 PHP
php数组添加元素方法小结
Dec 20 PHP
微信公众平台开发之天气预报功能
Aug 31 PHP
一键生成各种尺寸Icon的php脚本(实例)
Feb 08 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 PHP
PHP fprintf()函数用法讲解
Feb 16 PHP
Laravel 类和接口注入相关的代码
Oct 15 PHP
PHP实现微信提现功能(微信商城)
Nov 21 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
PHP5 字符串处理函数大全
2010/03/23 PHP
PHP/HTML混写的四种方式总结
2017/02/27 PHP
php nginx 实时输出的简单实现方法
2018/01/21 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
PHP执行普通shell命令流程解析
2020/08/24 PHP
一个无限级XML绑定跨框架菜单(For IE)
2007/01/27 Javascript
jQuery实现折线图的方法
2015/02/28 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
2015/09/15 Javascript
浅析JavaScript 调试方法和技巧
2015/10/22 Javascript
JavaScript浏览器对象之一Window对象详解
2016/06/03 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
Vue-cli3简单使用(图文步骤)
2019/04/30 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
python读写ini配置文件方法实例分析
2015/06/30 Python
Python处理Excel文件实例代码
2017/06/20 Python
利用Python找出序列中出现最多的元素示例代码
2017/12/08 Python
python单例模式实例解析
2018/08/28 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
2018/12/17 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
2020/05/29 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
欧洲第一的摇滚和金属乐队服装网站:EMP
2017/10/26 全球购物
美国翻新电子产品商店:The Store
2019/10/08 全球购物
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
Prototype是怎么扩展DOM的
2014/10/01 面试题
董事长助理岗位职责
2014/02/18 职场文书
个性发展自我评价2015
2015/03/09 职场文书
学术会议通知范文
2015/04/15 职场文书
给女朋友的道歉短信
2015/05/12 职场文书
初一英语教学反思
2016/02/15 职场文书
教你如何使用Python实现二叉树结构及三种遍历
2021/06/18 Python
Vue vee-validate插件的简单使用
2021/06/22 Vue.js
volatile保证可见性及重排序方法
2022/08/05 Java/Android