PHP跳转函数和一个通用的操作提示类的编写2014-08-31 csdn博客 风火程序员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; } ?>一个通用的操作提示类的编写在设计一些系统的时候,经常需要给用户进行操作提示。这种提示很重要,友好的提示能够提升用户对系统的好感度。操作提示有很多设计,下面是我的一个简陋的方案,仅抛砖引玉。
<?phpclass Tips{private $tips;static private $_instance;private function __construct($string, $url){$this->tips = "<meta http-equiv=refresh content=4;url=$url><div style="border:1px solid #B4D8F4; width:320px; height:120px; margin:0 auto; font-size:12px;"><div style="background-color:#CDE6F9; height:20px;"></div><div align="center" style="font-size:14px; font-weight:bold; margin:20px 0 20px 0;">$string</div><div align="center"><a href="$url">返回</a> (4秒后自动返回)</div></div>";return $this->tips;}public function __toString(){return $this->tips;}private function __clone(){}public static function get_tips($string, $url){if( FALSE == (self::$_instance instanceof self) ){self::$_instance = new self($string, $url);}return self::$_instance;}}?>这个类功能很简单,就是实现了4秒后跳转到某个链接,或者点击跳到那个链接。__toString()这个函数很重要,它可以实现类对象的字符串输出。如何使用这个类呢?
include_once("./tips_class.php");$hit = "错误:两次输入的密码不一致";$jump = "../login.php";echo $tips = Tips::get_tips($hit, $jump);