CI URL 辅助函数 url helper
URL 辅助函数文件包含一些在处理 URL 中很有用的函数
加载辅助函数
本辅助函数通过如下代码加载:
$this->load->helper('url');
可用函数如下:
site_url()
返回站点的URL, 如果在config.php 文件中指定了base_url会返回指定的值,否则自动获取。 当你将URI段作为参数传给这个函数时,index.php 文件名 (或者是你在config中自定义的index_page 文件名) 会被加到URL后面, 而且会加上你在config中定义的 url_suffix 后缀。
无论什么时候需要生成 URL ,都鼓励您使用该函数, 这样当您的根 URL 改变的时候更具有可移植性。[注:根 URL 指 config.php 中指定的 base_url 和 index_page--IT不倒翁]
做为参数传递给该函数的 URI 段可以是一个字符串,也可以是一个数组. 下面是一个字符串的例子:
echo site_url("news/local/123");
上面的例子将返回: http://example.com/index.php/news/local/123
注意:如果config中开启了enable_query_strings,则连接符由/改为?,上面的url会返回这样:
http://example.com/index.php?news/local/123
所以这里要注意,如果你开启了get传值的话,请注意这里的变化。
这是一个以数组形式传递 URI 段的例子:
$segments = array('news', 'local', '123');
echo site_url($segments);
base_url()
返回在 config.php 中设定的 base_url. 例:
echo base_url();
这个函数和site_url返回相同,只是 index_page 和 url_suffix 不再被追加。
和site_url函数一样, 做为参数传递给该函数的 URI 段可以是一个字符串,也可以是一个数组. 下面是一个字符串的例子:
echo base_url("blog/post/123");
上面的例子将返回: http://example.com/blog/post/123
This is useful because unlike site_url(), you can supply a string to a file, such as an image or stylesheet. For example:
echo base_url("images/icons/edit.png");
This would give you something like: http://example.com/images/icons/edit.png
current_url()
返回当前正在查看的页面的完整URL(包括段)。
uri_string()
返回任何包含了此函数的页面的URI段。比如说,要是你的URL是这样的:
http://some-site.com/blog/comments/123
此函数将会返回:
/blog/comments/123
注:我测试的结果:
blog/comments/123
index_page()
返回在 config.php 中设定的 index_page. 例:
echo index_page();
anchor()
创建基于你的本地站点URL的标准链接地址:【原翻译为锚链接,不妥。该函数实际上是用来快速生成<a>标签链接用的-zehee】
<a href="http://example.com">Click Here</a> //echo anchor('','Click Here','');
它有三个可选参数:
anchor(uri segments, text, attributes)
第一个参数包含你想附加到URL的任何段.像上面的site_url() 函数一样,段可以是字符串或数组.
注意: 如果你创建在应用程序内部的链接没有包含基本URL(http://...),这个参数会从你配置文件信息中自动加载。只需要写上你的 URL 分段即可。
第二个参数是你想给链接的内容(<a>标签中间的内容).如果让它为空,将会由URL替代.
第三个参数包含一组你想附加给链接的属性.这些属性可以是简单的字符串或相关的数组.
这里有一些例子:
echo anchor('news/local/123', 'My News', 'title="News title"');
输出(链接名字'My News'): <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!'));
输出(鼠标放在上面会有'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
第2个参数指定单词之间的分隔符. 默认使用破折号'-'.
$title = "What's wrong with CSS?";
$url_title = url_title($title, '_');
// 输出: Whats_wrong_with_CSS
第3个参数决定了是否强制转换为小写.默认情况下不会.参数类型为布尔值 TRUE/FALSE:
$title = "What's wrong with CSS?";
$url_title = url_title($title, '_', TRUE);
// Produces: whats_wrong_with_css
prep_url()
在URL中没有http://的情况下,这个函数可以附加上.像这样把URL字串传递给函数:
$url = "example.com";
$url = prep_url($url);
redirect()
通过发送HTTP头,命令客户端转向到您指定的URL。您既可以指定一个完整的URL,也可以对于站内内容,指定基于网站根目录的相对URL。本函数会自动根据您的配置文件,构造出完整的URL。
你可以设定第二个参数为 location 定位操作(默认)或者 refresh 刷新操作。定位操作比刷新操作执行速度快,但是在Windows服务器上有时会报错。可选的第3个参数允许你发送一个特定的HTTP请求返回码 - 举例来说这可以用来创建303请求重定向来服务于搜索引擎. 默认的请求返回码是302(临时重定向). 第3个参数只使用于'location'重定向, 而不是用于'refresh'. 范例:
//注意!!一定不要忘了加载 $this->load->helper('url');
if ($logged_in == FALSE)
{
redirect('/login/form/', 'refresh');
}
// with 301 redirect
redirect('/article/13', 'location', 301);
注意:由于此函数需要处理header头文件,因此它必须在向客户端输出任何内容之前调用。
注意:如果您想对HTTP头做更细致的设置,您可以使用输出类的 set_header() 函数。
CI URL 辅助函数 url helper的更多相关文章
- CI中的url相关函数以及路由设置和伪静态技术
当使用CI框架进行开发时,我们的一些数据传递的URL不应该写死,可以使用如下方法:比如说我们需要表单提交一个数据: 1.在controller控制器中我们需要先创建一个加载helper和视图的方法: ...
- php CI框架中URL特殊字符处理与SQL注入隐患
php CI框架中URL特殊字符处理与SQL注入隐患 php CI框架中URL特殊字符有很多是不支持的,导致像c++,括号这些常用的分类,字符都无法正常显示很头痛,而在配置里增加单引号' 反斜杠\ 这 ...
- CodeIgniter-Lottery - php ci 抽奖辅助函数
CodeIgniter-Lottery - php ci 抽奖辅助函数 Github https://github.com/xjnotxj/CodeIgniter-Lottery 用法 1. 移入文件 ...
- 【转】关于URL编码/javascript/js url 编码/url的三个js编码函数
来源:http://www.cnblogs.com/huzi007/p/4174519.html 关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),e ...
- nodejs获取当前url和url参数值
//需要使用的模块 http url 当前url http://localhost:8888/select?aa=001&bb=002 var http = require('http ...
- 取当前的地址栏的Url和url中的参数
看到这样一段代码: exports.showLogin = function (req, res) { req.session._loginReferer = req.headers.referer; ...
- 使用jquery获取url及url参数的方法及定义JQuery扩展方法
1.jquery获取url很简单,代码如下: window.location.href; 其实只是用到了javascript的基础的window对象,并没有用jquery的知识. 2.jquery获取 ...
- 关于URL编码/javascript/js url 编码/url的三个js编码函数
关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),encodeURI(),encodeURIComponent() 本文为您讲述关于js(javasc ...
- java.lang.IllegalArgumentException: Missing either @POST URL or @Url parameter.
以前联调的接口,都是类似这样子的http://ip:8080/WLInterface/register 在baseUrl(http://ip:8080/WLInterface/register ) ...
随机推荐
- STMP发送邮件被当垃圾邮件处理的解决方法
昨天使用了.Net通过smtp发送邮件的方式发送了一封邮件到自己的QQ邮箱,但是发送成功后并没有提示邮箱收到新的邮件,而且去收件箱里面也没有新增的邮件. 这让本人觉得奇怪,所以就觉得是否被当作垃圾邮件 ...
- hive j简单邮件过滤
select min(call_log), a.mail_subject from (select mail_to,mail_subject from dw_user_deviler_201408 w ...
- 消息处理之performSelector
performSelector和直接调用方法的区别 performSelector: withObject:是在iOS中的一种方法调用方式.他可以向一个对象传递任何消息,而不需要在编译的时候声明这些方 ...
- BZOJ 2300: [HAOI2011]防线修建( 动态凸包 )
离线然后倒着做就变成了支持加点的动态凸包...用平衡树维护上凸壳...时间复杂度O(NlogN) --------------------------------------------------- ...
- 常用的Linux操作命令(一)
ls 目录 mkdir 创建文件夹 vi 新建文件 :w filename 将文章存入指定的文件名filename :wq 保存并退出编辑文件 :q! 强制离开并放弃编辑的文件 cd 切换到目录/ro ...
- PL/SQL database character set(AL32UTF8) and Client character set(ZHS16GBK) are different
启动PL/SQL Developer 报字符编码不一致错误 Database character set (AL32UTF8) and Client character set (ZHS16GBK) ...
- 把WinXP装进内存 性能飚升秒杀固态硬盘
现在用户新配置的电脑,内存很少有小于2GB的,配置4GB内存的朋友也有不少.容量如此大的内存,我们在使用电脑的日常操作中绝对用不完.而目前制约系统性能最大的瓶颈就是硬盘的传输速度,所以,这里教你怎么把 ...
- WM_SYSCOMMAND包括很多功能,比如:拖动左边框、拖动标题栏、滚动条滚动、点击最小化、双击标题栏——Delphi 通过事件代替了大部分常用的消息,所以Delphi 简单、易用、高效
procedure TForm1.WMSysCommand(var Message: TWMSysCommand); var str: string; begin case Message.CmdTy ...
- 将 SQL Server 实例设置为自动启动(SQL Server 配置管理器)
本主题说明如何使用 SQL Server 配置管理器在 SQL Server 2012 中将 SQL Server 实例设置为自动启动. 在安装过程中,SQL Server 通常配置为自动启动. 如果 ...
- 《火球——UML大战需求分析》(0.2)——目录
说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...