API15:JApplication/redirect/ja
出典: Joomla! ドキュメンテーション
目次 |
Description
Redirect to another URL.
Syntax
redirect($url, $msg='', $msgType='message')
| Parameter Name | Default Value | Description |
|---|---|---|
| $url | $url The URL to redirect to. Can only be http/https URL | |
| $msg | $msg An optional message to display on redirect. | |
| $msgType | 'message' | $msgType An optional message type. |
Returns
none; calls exit().
Defined in
libraries/joomla/application/application.php
Importing
jimport( 'joomla.application.application' );
Source Body
function redirect( $url, $msg='', $msgType='message' ) { // check for relative internal links if (preg_match( '#^index[2]?.php#', $url )) { $url = JURI::base() . $url; } // Strip out any line breaks $url = preg_split("/[\r\n]/", $url); $url = $url[0]; // If we don't start with a http we need to fix this before we proceed // We could validly start with something else (e.g. ftp), though this would // be unlikely and isn't supported by this API if(!preg_match( '#^http#i', $url )) { $uri =& JURI::getInstance(); $prefix = $uri->toString(Array('scheme', 'user', 'pass', 'host', 'port')); if($url[0] == '/') { // we just need the prefix since we have a path relative to the root $url = $prefix . $url; } else { // its relative to where we are now, so lets add that $parts = explode('/', $uri->toString(Array('path'))); array_pop($parts); $path = implode('/',$parts).'/'; $url = $prefix . $path . $url; } } // If the message exists, enqueue it if (trim( $msg )) { $this->enqueueMessage($msg, $msgType); } // Persist messages if they exist if (count($this->_messageQueue)) { $session =& JFactory::getSession(); $session->set('application.queue', $this->_messageQueue); } /* * If the headers have been sent, then we cannot send an additional location header * so we will output a javascript redirect statement. */ if (headers_sent()) { echo "<script>document.location.href='$url';</script>\n"; } else { //@ob_end_clean(); // clear output buffer header( 'HTTP/1.1 301 Moved Permanently' ); header( 'Location: ' . $url ); } $this->close(); }
Examples
<CodeExamplesForm />
