1 教程-内容提要
1.1 CodeIgniter3.1教程——开始
1.2 加载静态内容
1.3 读取新闻条目
1.4 创建新闻条目
2 常规主题
2.1 CodeIgniter URL
2.2 控制器
2.3 保留名称
2.4 视图
2.5 模型
2.6 辅助函数
2.7 使用 CodeIgniter 类库
2.8 创建类库
2.9 使用 CodeIgniter 驱动器
2.10 创建驱动器
2.11 创建核心系统类
2.12 创建附属类
2.13 钩子 - 扩展框架核心
2.14 自动加载资源
2.15 公共函数
2.16 兼容性函数
2.17 URI 路由
2.18 错误处理
2.19 网页缓存
2.20 程序分析
2.21 以 CLI 方式运行
2.22 管理你的应用程序
2.23 处理多环境
2.24 在视图文件中使用 PHP 替代语法
2.25 安全
2.26 PHP 开发规范
3 类库参考
3.1 基准测试类
3.2 缓存驱动器
3.3 日历类
3.4 购物车类
3.5 配置类
3.6 Email 类
3.7 加密类(废弃)
3.8 加密类(新版)
3.9 文件上传类
3.10 表单验证类
3.11 FTP 类
3.12 图像处理类
3.13 输入类
3.14 Javascript 类
3.15 语言类
3.16 加载器类
3.17 迁移类
3.18 输出类
3.19 分页类
3.20 模板解析类
3.21 安全类
3.22 Session 类
3.23 HTML 表格类
3.24 引用通告类
3.25 排版类
3.26 单元测试类
3.27 URI 类
3.28 用户代理类
3.29 XML-RPC 与 XML-RPC 服务器类
3.30 Zip 编码类
4 数据库参考
4.1 数据库快速入门: 示例代码
4.2 数据库配置
4.3 连接你的数据库
4.4 查询
4.5 生成查询结果
4.6 查询辅助函数
4.7 查询构造器类
4.8 事务
4.9 数据库元数据
4.10 自定义函数调用
4.11 查询缓存
4.12 数据库工厂类
4.13 数据库工具类
4.14 数据库驱动器参考
5 辅助函数参考
5.1 数组辅助函数
5.2 验证码辅助函数
5.3 Cookie 辅助函数
5.4 日期辅助函数
5.5 目录辅助函数
5.6 下载辅助函数
5.7 邮件辅助函数
5.8 文件辅助函数
5.9 表单辅助函数
5.10 HTML 辅助函数
5.11 Inflector 辅助函数
5.12 语言辅助函数
5.13 数字辅助函数
5.14 路径辅助函数
5.15 安全辅助函数
5.16 表情辅助函数(废弃)
5.17 字符串辅助函数
5.18 文本辅助函数
5.19 排版辅助函数
5.20 URL 辅助函数
5.21 XML 辅助函数

URL 辅助函数

2017-12-03 20:03:46
linefo
583
最后编辑:linefo 于 2017-12-03 21:20:02

URL 辅助函数

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&#58;// 。

像下面这样使用该函数:

$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 状态码。

重要

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