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写UltraEdit插件脚本实现方法
Dec 26 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
Jun 28 PHP
PHP三元运算的2种写法代码实例
May 12 PHP
ThinkPHP文件上传实例教程
Aug 22 PHP
php读取目录及子目录下所有文件名的方法
Oct 20 PHP
PHP在线调试执行的实现方法(附demo源码)
Apr 28 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
PHP实现合并两个排序链表的方法
Jan 19 PHP
PHP命名空间与自动加载类详解
Sep 04 PHP
PHP中常见的密码处理方式和建议总结
Oct 14 PHP
PHP实现的用户注册表单验证功能简单示例
Feb 25 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
Oct 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
玛琪朵 Macchiato
2021/03/03 咖啡文化
WML,Apache,和 PHP 的介绍
2006/10/09 PHP
WINXP下apache+php4+mysql
2006/11/25 PHP
也谈php网站在线人数统计
2008/04/09 PHP
php中利用post传递字符串重定向的实现代码
2011/04/21 PHP
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
PHP实现指定字段的多维数组排序函数分享
2015/03/09 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
YII框架行为behaviors用法示例
2019/04/26 PHP
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
2018/01/18 Javascript
vue使用 better-scroll的参数和方法详解
2018/01/25 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
[01:04:31]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第二场 1月8日
2021/03/11 DOTA
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
python实现从ftp服务器下载文件的方法
2015/04/30 Python
用Python编写简单的微博爬虫
2016/03/04 Python
python2.7+selenium2实现淘宝滑块自动认证功能
2018/02/24 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
Python爬虫动态ip代理防止被封的方法
2019/07/07 Python
numpy求平均值的维度设定的例子
2019/08/24 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
2019/10/12 Python
python argparser的具体使用
2019/11/10 Python
python爬取代理IP并进行有效的IP测试实现
2020/10/09 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
投标承诺书怎么写
2014/05/24 职场文书
会计学自荐信
2014/06/03 职场文书
公务员学习习总书记“三严三实”思想汇报
2014/09/19 职场文书
实习指导老师意见
2015/06/04 职场文书
保护环境建议书作文300字
2015/09/14 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python
mysql中int(3)和int(10)的数值范围是否相同
2021/10/16 MySQL
Golang 字符串的常见操作
2022/04/19 Golang