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 相关文章推荐
phpwind中的数据库操作类
Jan 02 PHP
PHP stream_context_create()作用和用法分析
Mar 29 PHP
PHP的curl实现get,post和cookie(实例介绍)
Jun 17 PHP
PHP empty函数报错解决办法
Mar 06 PHP
thinkphp实现发送邮件密码找回功能实例
Dec 01 PHP
Yii学习总结之数据访问对象 (DAO)
Feb 22 PHP
php+ajax实时刷新简单实例
Feb 25 PHP
编写PHP脚本来实现WordPress中评论分页的功能
Dec 10 PHP
详解PHP中的外观模式facade pattern
Feb 05 PHP
PHP序列化的四种实现方法与横向对比
Nov 29 PHP
php的lavarel框架中join和orWhere的用法
Dec 28 PHP
PHP实现rar解压读取扩展包小结
Jun 03 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
Destoon模板制作简明教程
2014/06/20 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
2014/07/10 PHP
Yii2中SqlDataProvider用法示例
2016/09/22 PHP
js function定义函数使用心得
2010/04/15 Javascript
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
2010/09/12 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
JavaScript自执行闭包的小例子
2013/06/29 Javascript
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
jQuery中:selected选择器用法实例
2015/01/04 Javascript
js+html5实现canvas绘制简单矩形的方法
2015/06/05 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
Js遍历键值对形式对象或Map形式的方法
2016/08/08 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
Vue实现动态显示textarea剩余字数
2017/05/22 Javascript
详解vue 模拟后台数据(加载本地json文件)调试
2017/08/25 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
基于vue.js中关于下拉框的值默认及绑定问题
2018/08/22 Javascript
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
你可能不知道的CORS跨域资源共享
2019/03/13 Javascript
微信小程序封装的HTTP请求示例【附升级版】
2019/05/11 Javascript
浅谈vue.watch的触发条件是什么
2020/11/07 Javascript
Python元组及文件核心对象类型详解
2018/02/11 Python
python获取Pandas列名的几种方法
2019/08/07 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
python 制作简单的音乐播放器
2020/11/25 Python
北美个性化礼品商店:Things Remembered
2018/06/12 全球购物
办公室年终个人自我评价
2013/10/28 职场文书
房产销售经理职责
2013/12/20 职场文书
供货协议书
2014/04/22 职场文书
环保倡议书100字
2014/05/15 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
2015年大学生社会实践评语
2015/03/26 职场文书
利用JavaScript写一个简单计算器
2021/11/27 Javascript