CodeIgniter 用户指南 版本 1.6.3

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();

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', '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

prep_url()

在URL中没有http://的情况下,这个函数可以附加上.像这样把URL字串传递给函数:

$url = "example.com";

$url = prep_url($url);

redirect()

执行一个指定的利用header头文件实现跳转本地网址URL的操作。和该类辅助函数的其他函数一样,它用于重定向到你网站的一个网址URL。你不能指定一个全局网址URL,而只能指向你所需的一个控制器(controller)。该函数将自动根据你的设置文件(config file)来帮你构建全局网址URL。

你可以设定第二个参数为 location 操作(默认)或者 refresh 操作。定位操作比刷新操作执行速度快,但是在Windows服务器上它将有时被认为是一个错误操作。The optional third parameter allows you to send a specific HTTP Response Code - this could be used for example to create 301 redirects for search engine purposes. The default Response Code is 302. The third parameter is only available with 'location' redirects, and not 'refresh'. 范例:

if ($logged_in == FALSE)
{
     redirect('/login/form/', 'refresh');
}

// with 301 redirect
redirect('/article/13', 'location', 301);

注意:由于此函数需要处理header头文件,因此它的使用必须在任何输出给浏览器的内容前。
Note: For very fine grained control over headers, you should use the Output Library's set_header() function.

 

翻译贡献者: Hex, kkorange, nardo, yeto
最后修改: 2008-06-28 13:56:28