URL 輔助函數(shù)
URL 輔助函數(shù)文件包含一些在處理 URL 中很有用的函數(shù)
加載輔助函數(shù)
本輔助函數(shù)通過如下代碼加載:
$this->load->helper('url');
可用函數(shù)如下:
site_url()
Returns your site URL, as specified in your config file. The index.php file (or whatever you have set as your site index_page in your config file) will be added to the URL, as will any URI segments you pass to the function, and the url_suffix as set in your config file.
無論什么時(shí)候需要生成 URL ,都鼓勵(lì)您使用該函數(shù), 這樣當(dāng)您的根 URL 改變的時(shí)候更具有可移植性。[注:根 URL 指 config.php 中指定的 base_url 和 index_page--IT不倒翁]
做為參數(shù)傳遞給該函數(shù)的 URI 段可以是一個(gè)字符串,也可以是一個(gè)數(shù)組. 下面是一個(gè)字符串的例子:
echo site_url("news/local/123");
上面的例子將返回: http://example.com/index.php/news/local/123
注意:如果config中開啟了enable_query_strings,則連接符由/改為?,上面的url會(huì)返回這樣:
http://example.com/index.php?news/local/123
所以這里要注意,如果你開啟了get傳值的話,請(qǐng)注意這里的變化。
這是一個(gè)以數(shù)組形式傳遞 URI 段的例子:
$segments = array('news', 'local', '123');
echo site_url($segments);
base_url()
返回在 config.php 中設(shè)定的 base_url. 例:
echo base_url();
This function returns the same thing as site_url, without the index_page or url_suffix being appended.
這個(gè)函數(shù)的返回值是在site_url()函數(shù)的返回值后面追加index_page 或 url_suffix [注:指 config.php 中指定的 base_url 和 index_page].
Also like site_url, you can supply segments as a string or an array. Here is a string example:
和site_url函數(shù)一樣, 做為參數(shù)傳遞給該函數(shù)的 URI 段可以是一個(gè)字符串,也可以是一個(gè)數(shù)組. 下面是一個(gè)字符串的例子:
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()
返回當(dāng)前正在查看的頁面的完整URL(包括段)。
uri_string()
返回任何包含了此函數(shù)的頁面的URI段。比如說,要是你的URL是這樣的:
http://some-site.com/blog/comments/123
此函數(shù)將會(huì)返回:
/blog/comments/123
注:我測(cè)試的結(jié)果:
blog/comments/123
index_page()
返回在 config.php 中設(shè)定的 index_page. 例:
echo index_page();
anchor()
創(chuàng)建基于你的本地站點(diǎn)URL(如 www.your-site.com )的標(biāo)準(zhǔn)錨鏈接:【注:我理解為 config.php 文件中設(shè)定的根路徑--IT不倒翁】
Click Here
它有三個(gè)可選參數(shù):
anchor(uri segments, text, attributes)
第一個(gè)參數(shù)包含你想附加到URL的任何段.像上面的site_url() 函數(shù)一樣,段可以是字符串或數(shù)組.
注意:? 如果你創(chuàng)建在應(yīng)用程序內(nèi)部的鏈接沒有包含基本URL(http://...),這個(gè)參數(shù)會(huì)從你配置文件信息中自動(dòng)加載。只需要寫上你的 URL 分段即可。
第二個(gè)參數(shù)是你想給鏈接的名字.如果讓它為空,將會(huì)由URL(替代).
第三個(gè)參數(shù)包含一組你想附加給鏈接的屬性.這些屬性可以是簡單的字符串或相關(guān)的數(shù)組.
這里有一些例子:
echo anchor('news/local/123', 'My News', 'title="News title"');
輸出(鏈接名字'My News'): <a title="News title">My News</a>
echo anchor('news/local/123', 'My News', array('title' => 'The best news!'));
輸出(鼠標(biāo)放在上面會(huì)有'The best news!'提示): My News
anchor_popup()
幾乎和anchor() 函數(shù)相同,區(qū)別是它會(huì)在新窗口打開鏈接. 你可以在第三個(gè)參數(shù)中指定JavaScript窗口屬性來控制窗口的打開方式. 如果第三個(gè)參數(shù)沒有設(shè)置,它會(huì)直接根據(jù)你的瀏覽器設(shè)置打開新窗口.這是一個(gè)屬性設(shè)置的例子:
$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);
注意: 以上是函數(shù)默認(rèn)設(shè)置,你只要根據(jù)自己需要設(shè)置不同.如果你想函數(shù)使用默認(rèn)設(shè)置,直接傳一個(gè)空數(shù)組給第三個(gè)參數(shù)就行了:
echo anchor_popup('news/local/123', 'Click Me!', array());
mailto()
創(chuàng)建標(biāo)準(zhǔn)HTML電子郵件鏈接.習(xí)慣用例:
echo mailto('me@my-site.com', 'Click Here to Contact Me');
像上面的anchor() 一樣, 你可以用第三個(gè)參數(shù)設(shè)置屬性.
safe_mailto()
用法和上面的函數(shù)相同,區(qū)別是它用JavaScript寫了基于順序號(hào)碼的不易識(shí)別的mailto版本標(biāo)簽,可以阻止email地址被垃圾郵件截獲.
auto_link()
自動(dòng)把包含URL和email地址的字串轉(zhuǎn)換成鏈接. 例如:
$string = auto_link($string);
第二個(gè)參數(shù)決定URL和email是否都轉(zhuǎn)換或其中一個(gè)轉(zhuǎn)換.如果參數(shù)沒有指定默認(rèn)是兩個(gè)都轉(zhuǎn)換.Email links are encoded as safe_mailto() as shown above.
只轉(zhuǎn)換URL:
$string = auto_link($string, 'url');
只轉(zhuǎn)換Email地址:
$string = auto_link($string, 'email');
第三個(gè)參數(shù)決定鏈接是否都在新窗口打開.參數(shù)值可以是TRUE 或 FALSE(boolean):
$string = auto_link($string, 'both', TRUE);
url_title()
輸入一個(gè)字符串并且創(chuàng)建用戶友好的URL字串.舉個(gè)例子,你有一個(gè)blog,而且你想在URL中使用條目的標(biāo)題,這個(gè)函數(shù)就有用了.例如:
$title = "What's wrong with CSS?";
$url_title = url_title($title);
// 輸出: Whats-wrong-with-CSS
第二個(gè)參數(shù)指定單詞之間的分隔符. 默認(rèn)使用破折號(hào)'-'. 選項(xiàng)有: dash 即'-', 或者 underscore 即'_':
$title = "What's wrong with CSS?";
$url_title = url_title($title, 'underscore');
// 輸出: Whats_wrong_with_CSS
第3個(gè)參數(shù)決定了是否強(qiáng)制轉(zhuǎn)換為小寫.默認(rèn)情況下不會(huì).參數(shù)類型為布爾值 TRUE/FALSE:
$title = "What's wrong with CSS?";
$url_title = url_title($title, 'underscore', TRUE);
// Produces: whats_wrong_with_css
prep_url()
在URL中沒有http://的情況下,這個(gè)函數(shù)可以附加上.像這樣把URL字串傳遞給函數(shù):
$url = "example.com";
$url = prep_url($url);
redirect()
通過發(fā)送HTTP頭,命令客戶端轉(zhuǎn)向到您指定的URL。您既可以指定一個(gè)完整的URL,也可以對(duì)于站內(nèi)內(nèi)容,指定基于網(wǎng)站根目錄的相對(duì)URL。本函數(shù)會(huì)自動(dòng)根據(jù)您的配置文件,構(gòu)造出完整的URL。
你可以設(shè)定第二個(gè)參數(shù)為 location 定位操作(默認(rèn))或者 refresh 刷新操作。定位操作比刷新操作執(zhí)行速度快,但是在Windows服務(wù)器上有時(shí)會(huì)報(bào)錯(cuò)。可選的第3個(gè)參數(shù)允許你發(fā)送一個(gè)特定的HTTP請(qǐng)求返回碼 - 舉例來說這可以用來創(chuàng)建303請(qǐng)求重定向來服務(wù)于搜索引擎. 默認(rèn)的請(qǐng)求返回碼是302(臨時(shí)重定向). 第3個(gè)參數(shù)只使用于'location'重定向, 而不是用于'refresh'. 范例:
if ($logged_in == FALSE)
{
?????redirect('/login/form/', 'refresh');
}
// with 301 redirect
redirect('/article/13', 'location', 301);
注意:由于此函數(shù)需要處理header頭文件,因此它必須在向客戶端輸出任何內(nèi)容之前調(diào)用。
注意:如果您想對(duì)HTTP頭做更細(xì)致的設(shè)置,您可以使用輸出類的 set_header() 函數(shù)。
?