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实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
Jul 18 PHP
PHP反向代理类代码
Aug 15 PHP
PHP中使用Imagick操作PSD文件实例
Jan 26 PHP
PHP获取ip对应地区和使用网络类型的方法
Mar 11 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
Sep 21 PHP
PhpStorm terminal无法输入命令的解决方法
Oct 09 PHP
php实现单笔转账到支付宝功能
Oct 09 PHP
PHP操作XML中XPath的应用示例
Jul 04 PHP
实现laravel 插入操作日志到数据库的方法
Oct 11 PHP
Laravel 创建可以传递参数 Console服务的例子
Oct 14 PHP
laravel 5.5 关闭token的3种实现方式
Oct 24 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
Feb 10 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
PHP小技巧搜集,每个PHPer都来露一手
2007/01/02 PHP
php 在线打包_支持子目录
2008/06/28 PHP
php二分查找二种实现示例
2014/03/12 PHP
Yii框架form表单用法实例
2014/12/04 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
数理公式,也可以这么唯美
2021/03/10 无线电
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
Exjs 入门篇
2010/04/07 Javascript
javascript 数组学习资料收集
2010/04/11 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
2013/08/28 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
js实现密码强度检验
2017/01/15 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
玩转vue的slot内容分发
2018/09/22 Javascript
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
2019/09/26 Javascript
原生js实现下拉框选择组件
2021/01/20 Javascript
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
python实现学生信息管理系统
2020/04/05 Python
Python针对给定列表中元素进行翻转操作的方法分析
2018/04/27 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
python pytest进阶之xunit fixture详解
2019/06/27 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
简单易懂Pytorch实战实例VGG深度网络
2019/08/27 Python
Pretty You London官网:英国拖鞋和睡衣品牌
2019/05/08 全球购物
戴森西班牙官网:Dyson西班牙
2020/02/04 全球购物
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
Johnson Fitness澳大利亚:高级健身器材
2021/03/16 全球购物
大学生水文观测实习自我鉴定
2013/09/29 职场文书
会计专业毕业生自我鉴定
2013/10/29 职场文书
产品发布会策划方案
2014/05/12 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
Python编解码问题及文本文件处理方法详解
2021/06/20 Python