返回介绍

URL 辅助函数

发布于 2019-10-31 06:05:19 字数 12912 浏览 956 评论 0 收藏 0

URL 辅助函数文件包含了一些帮助你处理 URL 的函数。

  • 加载辅助函数
  • 可用函数

加载辅助函数

该辅助函数通过下面的代码加载:

$this->load->helper('url');

可用函数

该辅助函数有下列可用函数:

site_url([$uri = ''[, $protocol = NULL]])
参数:
  • $uri (string) -- URI string
  • $protocol (string) -- Protocol, e.g. 'http' or 'https'
返回:

Site URL

返回类型:

string

根据配置文件返回你的站点 URL 。index.php (获取其他你在配置文件中设置的 index_page 参数) 将会包含在你的 URL 中,另外再加上你传给函数的 URI 参数,以及配置文件中设置的 url_suffix 参数。

推荐在任何时候都使用这种方法来生成你的 URL ,这样在你的 URL 变动时你的代码将具有可移植性。

传给函数的 URI 段参数可以是一个字符串,也可以是个数组,下面是字符串的例子:

echo site_url('news/local/123');

上例将返回类似于:http://example.com/index.php/news/local/123

下面是使用数组的例子:

$segments = array('news', 'local', '123');
echo site_url($segments);

该函数是 CI_Config::site_url() 的别名,更多信息请查阅 配置类 文档。

base_url($uri = '', $protocol = NULL)
参数:
  • $uri (string) -- URI string
  • $protocol (string) -- Protocol, e.g. 'http' or 'https'
返回:

Base URL

返回类型:

string

根据配置文件返回你站点的根 URL ,例如:

echo base_url();

该函数和 site_url() 函数相同,只是不会在 URL 的后面加上 index_pageurl_suffix

另外,和 site_url() 一样的是,你也可以使用字符串或数组格式的 URI 段。下面是字符串的例子:

echo base_url("blog/post/123");

上例将返回类似于:http://example.com/blog/post/123

site_url() 函数不一样的是,你可以指定一个文件路径(例如图片或样式文件),这将很有用,例如:

echo base_url("images/icons/edit.png");

将返回类似于:http://example.com/images/icons/edit.png

该函数是 CI_Config::base_url() 的别名,更多信息请查阅 配置类 文档。

current_url()
返回:The current URL
返回类型:string

返回当前正在浏览的页面的完整 URL (包括分段)。

注解

该函数和调用下面的代码效果是一样的: | | site_url(uri_string());

uri_string()
返回:An URI string
返回类型:string

返回包含该函数的页面的 URI 分段。例如,如果你的 URL 是:

http://some-site.com/blog/comments/123

函数将返回:

blog/comments/123

该函数是 CI_Config::uri_string() 的别名,更多信息请查阅 配置类 文档。

index_page()
返回:'index_page' value
返回类型:mixed

返回你在配置文件中配置的 index_page 参数,例如:

echo index_page();
anchor($uri = '', $title = '', $attributes = '')
参数:
  • $uri (string) -- URI string
  • $title (string) -- Anchor title
  • $attributes (mixed) -- HTML attributes
返回:

HTML hyperlink (anchor tag)

返回类型:

string

根据你提供的 URL 生成一个标准的 HTML 链接。

第一个参数可以包含任何你想添加到 URL 上的段,和上面的 site_url() 函数一样,URL 的段可以是字符串或数组。

注解

如果你创建的链接是指向你自己的应用程序,那么不用包含根 URL (http://...)。 这个会根据你的配置文件自动添加到 URL 前面。所以你只需指定要添加的 URL 段就可以了。

第二个参数是链接的文本,如果留空,将使用链接本身作为文本。

第三个参数为你希望添加到链接的属性,可以是一个字符串,也可以是个关联数组。

这里是一些例子:

echo anchor('news/local/123', 'My News', 'title="News title"');
// Prints: <a href="http://example.com/index.php/news/local/123" title="News title">My News</a>

echo anchor('news/local/123', 'My News', array('title' => 'The best news!'));
// Prints: <a href="http://example.com/index.php/news/local/123" title="The best news!">My News</a>

echo anchor('', 'Click here');
// Prints: <a href="http://example.com">Click Here</a>
anchor_popup($uri = '', $title = '', $attributes = FALSE)
参数:
  • $uri (string) -- URI string
  • $title (string) -- Anchor title
  • $attributes (mixed) -- HTML attributes
返回:

Pop-up hyperlink

返回类型:

string

anchor() 函数非常类似,只是它生成的 URL 将会在新窗口被打开。你可以通过第三个参数指定 JavaScript 的窗口属性,以此来控制窗口将如何被打开。如果没有设置第三个参数,将会使用你的浏览器设置打开 一个新窗口。

这里是属性的例子:

$atts = array(
    'width'       => 800,
    'height'      => 600,
    'scrollbars'  => 'yes',
    'status'      => 'yes',
    'resizable'   => 'yes',
    'screenx'     => 0,
    'screeny'     => 0,
    'window_name' => '_blank'
);

echo anchor_popup('news/local/123', 'Click Me!', $atts);

注解

上面的属性是函数的默认值,所以你只需要设置和你想要的不一样的参数。如果想使用所有默认的参数, 只要简单的传一个空数组即可: | | echo anchor_popup('news/local/123', 'Click Me!', array());

注解

window_name 其实并不算一个属性,而是 Javascript 的 window.open() <http://www.w3schools.com/jsref/met_win_open.asp> 函数的一个参数而已, 该函数接受一个窗口名称或一个 window 对象。

注解

任何不同于上面列出来的其他的属性将会作为 HTML 链接的属性。

mailto($email, $title = '', $attributes = '')
参数:
  • $email (string) -- E-mail address
  • $title (string) -- Anchor title
  • $attributes (mixed) -- HTML attributes
返回:

A "mail to" hyperlink

返回类型:

string

创建一个标准的 HTML e-mail 链接。例如:

echo mailto('me@my-site.com', 'Click Here to Contact Me');

和上面的 anchor() 函数一样,你可以通过第三个参数设置属性:

$attributes = array('title' => 'Mail me');
echo mailto('me@my-site.com', 'Contact Me', $attributes);
safe_mailto($email, $title = '', $attributes = '')
参数:
  • $email (string) -- E-mail address
  • $title (string) -- Anchor title
  • $attributes (mixed) -- HTML attributes
返回:

A spam-safe "mail to" hyperlink

返回类型:

string

mailto() 函数一样,但是它的 mailto 标签使用了一个混淆的写法, 可以防止你的 e-mail 地址被垃圾邮件机器人爬到。

参数:
  • $str (string) -- Input string
  • $type (string) -- Link type ('email', 'url' or 'both')
  • $popup (bool) -- Whether to create popup links
返回:

Linkified string

返回类型:

string

将一个字符串中的 URL 和 e-mail 地址自动转换为链接,例如:

$string = auto_link($string);

第二个参数用于决定是转换 URL 还是 e-mail 地址,默认情况不指定该参数,两者都会被转换。 E-mail 地址的链接是使用上面介绍的 safe_mailto() 函数生成的。

只转换 URL

$string = auto_link($string, 'url');

只转换 e-mail 地址:

$string = auto_link($string, 'email');

第三个参数用于指定链接是否要在新窗口打开。可以是布尔值 TRUE 或 FALSE

$string = auto_link($string, 'both', TRUE);
url_title($str, $separator = '-', $lowercase = FALSE)
参数:
  • $str (string) -- Input string
  • $separator (string) -- Word separator
  • $lowercase (bool) -- Whether to transform the output string to lower-case
返回:

URL-formatted string

返回类型:

string

将字符串转换为对人类友好的 URL 字符串格式。例如,如果你有一个博客,你希望使用博客的标题作为 URL , 这时该函数很有用。例如:

$title = "What's wrong with CSS?";
$url_title = url_title($title);
// Produces: Whats-wrong-with-CSS

第二个参数指定分隔符,默认使用连字符。一般的选择有:- (连字符) 或者 _ (下划线)

例如:

$title = "What's wrong with CSS?";
$url_title = url_title($title, 'underscore');
// Produces: Whats_wrong_with_CSS

注解

第二个参数连字符和下划线的老的用法已经废弃。

第三个参数指定是否强制转换为小写。默认不会,参数类型为布尔值 TRUE 或 FALSE 。

例如:

$title = "What's wrong with CSS?";
$url_title = url_title($title, 'underscore', TRUE);
// Produces: whats_wrong_with_css
prep_url($str = '')
参数:
  • $str (string) -- URL string
返回:

Protocol-prefixed URL string

返回类型:

string

当 URL 中缺少协议前缀部分时,使用该函数将会向 URL 中添加 http:// 。

像下面这样使用该函数:

$url = prep_url('example.com');
redirect($uri = '', $method = 'auto', $code = NULL)
参数:
  • $uri (string) -- URI string
  • $method (string) -- Redirect method ('auto', 'location' or 'refresh')
  • $code (string) -- HTTP Response code (usually 302 or 303)
返回类型:

void

通过 HTTP 头重定向到指定 URL。你可以指定一个完整的 URL,也可以指定一个 URL 段, 该函数会根据配置文件自动生成该 URL。

第二个参数用于指定一种重定向方法。可用的方法有:autolocationrefresh 。 location 方法速度快,但是在 ISS 服务器上不可靠。默认值为 auto ,它会根据你的服务器环境 智能的选择使用哪种方法。

第三个参数可选,允许你发送一个指定的 HTTP 状态码,这个可以用来为搜索引擎创建 301 重定向。 默认的状态码为 302 ,该参数只适用于 location 重定向方法,对于 refresh 方法无效。例如:

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

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

注解

为了让该函数有效,它必须在任何内容输出到浏览器之前被调用。因为输出内容会使用服务器 HTTP 头。

注解

为了更好的控制服务器头,你应该使用 输出类set_header() 方法。

注解

使用 IIS 的用户要注意,如果你隐藏了 Server 这个 HTTP 头, auto 方法将无法检测到 IIS 。 在这种情况下,推荐你使用 refresh 方法。

注解

当使用 HTTP/1.1 的 POST 来访问你的页面时,如果你使用的是 location 方法,会自动使用 HTTP 303 状态码。

重要

该函数会终止脚本的执行。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文