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 09 PHP
PHP教程 预定义变量
Oct 23 PHP
浅析PHP中Collection 类的设计
Jun 21 PHP
分享一段php获取linux服务器状态的代码
May 27 PHP
php中heredoc与nowdoc介绍
Dec 25 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
Feb 10 PHP
PHP常用处理静态操作类
Apr 03 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
Jun 17 PHP
利用PHP绘图函数实现简单验证码功能的方法
Oct 18 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
Feb 10 PHP
php菜单/评论数据递归分级算法的实现方法
Aug 01 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
Apr 06 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
德生9700DX电路分析
2021/03/02 无线电
php判断并删除空目录及空子目录的方法
2015/02/11 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
jQuery实现手机版页面翻页效果的简单实例
2016/10/05 Javascript
CSS+jQuery实现简单的折叠菜单
2016/12/20 Javascript
微信小程序 轮播图swiper详解及实例(源码下载)
2017/01/11 Javascript
简单实现jQuery上传图片显示预览功能
2020/06/29 jQuery
Vue服务器渲染Nuxt学习笔记
2018/01/31 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
动态加载、移除js/css文件的示例代码
2018/03/20 Javascript
vue组件实现进度条效果
2018/06/06 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
个人小程序接入支付解决方案
2019/05/23 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
Python AES加密实例解析
2018/01/18 Python
pyqt5自定义信号实例解析
2018/01/31 Python
详解如何设置Python环境变量?
2019/05/13 Python
python图像处理模块Pillow的学习详解
2019/10/09 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
Python数据可视化实现多种图例代码详解
2020/07/14 Python
提高python代码运行效率的一些建议
2020/09/29 Python
Python可视化工具如何实现动态图表
2020/10/23 Python
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
《雨霖铃》听课反思
2014/02/13 职场文书
工程师岗位职责规定
2014/02/26 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
教师节倡议书2015
2015/04/27 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
css 中多种边框的实现小窍门
2021/04/07 HTML / CSS