URL 辅助函数
URL 辅助函数文件包含一些在处理 URL 中很有用的函数
加载辅助函数
本辅助函数通过如下代码加载:
$this->load->helper('url');
可用函数如下:
site_url()
以一个字符串的形式返回在 config.php 中指定的 base_url 和 index.php (或者在 config.php 中设定的 index_page) 还有传递给函数的的 URI 段参数.
在生成 URL 的任何时候鼓都励您使用该函数, 即便以后 base_url 和 index_page 改动也会不会出问题.
做为参数传递给该函数的 URI 段可以是一个字符串,也可以是一个数组. 下面是一个字符串的例子:
echo site_url("news/local/123");
上面的例子将返回: http://example.com/index.php/news/local/123
这是一个以数组形式传递 URI 段的例子:
$segments = array('news', 'local', '123');
echo site_url($segments);
base_url()
返回在 config.php 中设定的 base_url. 例:
echo base_url();
current_url()
返回当前正在查看的页面的完整URL(包括段)。
uri_string()
返回任何包含了此函数的页面的URI段。比如说,要是你的URL是这样的:
http://some-site.com/blog/comments/123
此函数将会返回:
/blog/comments/123
index_page()
返回在 config.php 中设定的 index_page. 例:
echo index_page();
anchor()
创建基于你的本地站点URL(如 www.your-site.com )的标准锚链接:
Click Here
它有三个可选参数:
anchor(uri segments, text, attributes)
第一个参数包含你想附加到URL的任何段.像上面的site_url() 函数一样,段可以是字符串或数组.
注意: 如果你创建在应用程序内部的链接没有包含基本URL(http://...),这个参数会从你配置文件信息中自动加载.包括只是你希望附加到URL的URI段.
第二个参数是你想给链接的名字.如果让它为空,将会由URL(替代).
第三个参数包含一组你想附加给链接的属性.这些属性可以是简单的字符串或相关的数组.
这里有一些例子:
echo anchor('news/local/123', 'title="My News"');
输出(链接名字'My News'): My News
echo anchor('news/local/123', 'My News', array('title' => 'The best news!'));
输出(鼠标放在上面会有'The best news!'提示): My News
anchor_popup()
几乎和anchor() 函数相同,区别是它会在新窗口打开链接. 你可以在第三个参数中指定JavaScript窗口属性来控制窗口的打开方式. 如果第三个参数没有设置,它会直接根据你的浏览器设置打开新窗口.这是一个属性设置的例子:
$atts = array(
'width' => '800',
'height' => '600',
'scrollbars' => 'yes',
'status' => 'yes',
'resizable' => 'yes',
'screenx' => '0',
'screeny' => '0'
);
echo anchor_popup('news/local/123', 'Click Me!', $atts);
注意: 以上是函数默认设置,你只要根据自己需要设置不同.如果你想函数使用默认设置,直接传一个空数组给第三个参数就行了:
echo anchor_popup('news/local/123', 'Click Me!', array());
mailto()
创建标准HTML电子邮件链接.习惯用例:
echo mailto('me@my-site.com', 'Click Here to Contact Me');
像上面的anchor() 一样, 你可以用第三个参数设置属性.
safe_mailto()
用法和上面的函数相同,区别是它用JavaScript写了基于顺序号码的不易识别的mailto版本标签,可以阻止email地址被垃圾邮件截获.
auto_link()
自动把包含URL和email地址的字串转换成链接. 例如:
$string = auto_link($string);
第二个参数决定URL和email是否都转换或其中一个转换.如果参数没有指定默认是两个都转换.Email links are encoded as safe_mailto() as shown above.
只转换URL:
$string = auto_link($string, 'url');
只转换Email地址:
$string = auto_link($string, 'email');
第三个参数决定链接是否都在新窗口打开.参数值可以是TRUE 或 FALSE(boolean):
$string = auto_link($string, 'both', TRUE);
url_title()
输入一个字符串并且创建用户友好的URL字串.举个例子,你有一个blog,而且你想在URL中使用条目的标题,这个函数就有用了.例如:
$title = "What's wrong with CSS?";
$url_title = url_title($title);
// 输出: Whats-wrong-with-CSS
第二个参数指定单词之间的分隔符. 默认使用破折号'-'. 选项有: 破折号'-', 或者 下划线'_':
$title = "What's wrong with CSS?";
$url_title = url_title($title, 'underscore');
// 输出: Whats_wrong_with_CSS
第3个参数决定了是否强制转换为小写.默认情况下不会.参数类型为布尔值 TRUE/FALSE:
$title = "What's wrong with CSS?";
$url_title = url_title($title, 'underscore', TRUE);
// Produces: whats_wrong_with_css
prep_url()
在URL中没有http://的情况下,这个函数可以附加上.像这样把URL字串传递给函数:
$url = "example.com";
$url = prep_url($url);
redirect()
执行一个指定的利用header头文件实现跳转本地网址URL的操作。和该类辅助函数的其他函数一样,它用于重定向到你网站的一个网址URL。你不能指定一个全局网址URL,而只能指向你所需的一个控制器(controller)。该函数将自动根据你的设置文件(config file)来帮你构建全局网址URL。
你可以设定第二个参数为 location 操作(默认)或者 refresh 操作。定位操作比刷新操作执行速度快,但是在Windows服务器上它将有时被认为是一个错误操作。可选的第3个参数允许你发送一个特定的HTTP请求返回码 - 举例来说这可以用来创建303请求重定向来服务于搜索引擎. 默认的请求返回码是302. 第3个参数只使用与'location'重定向, 而不是用于'refresh'. 范例:
if ($logged_in == FALSE)
{
redirect('/login/form/', 'refresh');
}
// with 301 redirect
redirect('/article/13', 'location', 301);
注意:由于此函数需要处理header头文件,因此它的使用必须在任何输出给浏览器的内容前。
注意: For very fine grained control over headers, you should use the Output Library's set_header() function.