W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
URL 輔助函數(shù)文件包含了一些幫助你處理 URL 的函數(shù)。
該輔助函數(shù)通過下面的代碼加載:
$this->load->helper('url');
該輔助函數(shù)有下列可用函數(shù):
site_url([$uri = ''[, $protocol = NULL]])
參數(shù):
返回: Site URL
返回類型: string
根據(jù)配置文件返回你的站點(diǎn) URL 。index.php (獲取其他你在配置文件中設(shè)置的 index_page 參數(shù)) 將會(huì)包含在你的 URL 中,另外再加上你傳給函數(shù)的 URI 參數(shù),以及配置文件中設(shè)置的 url_suffix 參數(shù)。
推薦在任何時(shí)候都使用這種方法來生成你的 URL ,這樣在你的 URL 變動(dòng)時(shí)你的代碼將具有可移植性。
傳給函數(shù)的 URI 段參數(shù)可以是一個(gè)字符串,也可以是個(gè)數(shù)組,下面是字符串的例子:
echo site_url('news/local/123');
上例將返回類似于:http://example.com/index.php/news/local/123
下面是使用數(shù)組的例子:
$segments = array('news', 'local', '123');
echo site_url($segments);
該函數(shù)是 CI_Config::site_url() 的別名,更多信息請(qǐng)查閱 配置類 文檔。
base_url($uri = '', $protocol = NULL)
參數(shù):
返回: Base URL
返回類型: string
根據(jù)配置文件返回你站點(diǎn)的根 URL ,例如:
echo base_url();
該函數(shù)和 site_url() 函數(shù)相同,只是不會(huì)在 URL 的后面加上 index_page 或 url_suffix 。
另外,和 site_url() 一樣的是,你也可以使用字符串或數(shù)組格式的 URI 段。下面是字符串的例子:
echo base_url("blog/post/123");
上例將返回類似于:http://example.com/blog/post/123
跟 site_url() 函數(shù)不一樣的是,你可以指定一個(gè)文件路徑(例如圖片或樣式文件),這將很有用,例如:
echo base_url("images/icons/edit.png");
將返回類似于:http://example.com/images/icons/edit.png
該函數(shù)是 CI_Config::base_url() 的別名,更多信息請(qǐng)查閱 配置類 文檔。
current_url()
返回: The current URL
返回類型: string
返回當(dāng)前正在瀏覽的頁面的完整 URL (包括分段)。
注解
該函數(shù)和調(diào)用下面的代碼效果是一樣的: site_url(uri_string());
uri_string()
返回: An URI string
返回類型: string
返回包含該函數(shù)的頁面的 URI 分段。例如,如果你的 URL 是:
http://some-site.com/blog/comments/123
函數(shù)將返回:
blog/comments/123
該函數(shù)是 CI_Config::uri_string() 的別名,更多信息請(qǐng)查閱 配置類 文檔。
index_page()
返回: 'index_page' value
返回類型: mixed
返回你在配置文件中配置的 index_page 參數(shù),例如:
echo index_page();
anchor($uri = '', $title = '', $attributes = '')
參數(shù):
返回: HTML hyperlink (anchor tag)
返回類型: string
根據(jù)你提供的 URL 生成一個(gè)標(biāo)準(zhǔn)的 HTML 鏈接。
第一個(gè)參數(shù)可以包含任何你想添加到 URL 上的段,和上面的 site_url() 函數(shù)一樣,URL 的段可以是字符串或數(shù)組。
注解
如果你創(chuàng)建的鏈接是指向你自己的應(yīng)用程序,那么不用包含根 URL (http://...)。 這個(gè)會(huì)根據(jù)你的配置文件自動(dòng)添加到 URL 前面。所以你只需指定要添加的 URL 段就可以了。
第二個(gè)參數(shù)是鏈接的文本,如果留空,將使用鏈接本身作為文本。
第三個(gè)參數(shù)為你希望添加到鏈接的屬性,可以是一個(gè)字符串,也可以是個(gè)關(guān)聯(lián)數(shù)組。
這里是一些例子:
echo anchor('news/local/123', 'My News', 'title="News title"');
// Prints: <a rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" target="_blank" title="News title">My News</a>
echo anchor('news/local/123', 'My News', array('title' => 'The best news!'));
// Prints: <a rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" target="_blank" title="The best news!">My News</a>
echo anchor('', 'Click here');
// Prints: <a rel="external nofollow" target="_blank" >Click Here</a>
anchor_popup($uri = '', $title = '', $attributes = FALSE)
參數(shù):
返回: Pop-up hyperlink
返回類型: string
和 anchor() 函數(shù)非常類似,只是它生成的 URL 將會(huì)在新窗口被打開。你可以通過第三個(gè)參數(shù)指定 JavaScript 的窗口屬性,以此來控制窗口將如何被打開。如果沒有設(shè)置第三個(gè)參數(shù),將會(huì)使用你的瀏覽器設(shè)置打開 一個(gè)新窗口。
這里是屬性的例子:
$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);
注解
上面的屬性是函數(shù)的默認(rèn)值,所以你只需要設(shè)置和你想要的不一樣的參數(shù)。如果想使用所有默認(rèn)的參數(shù), 只要簡(jiǎn)單的傳一個(gè)空數(shù)組即可: echo anchor_popup('news/local/123', 'Click Me!', array());
注解
window_name 其實(shí)并不算一個(gè)屬性,而是 Javascript 的 window.open() 函數(shù)的一個(gè)參數(shù)而已, 該函數(shù)接受一個(gè)窗口名稱或一個(gè) window 對(duì)象。
注解
任何不同于上面列出來的其他的屬性將會(huì)作為 HTML 鏈接的屬性。
mailto($email, $title = '', $attributes = '')
參數(shù):
返回: A "mail to" hyperlink
返回類型: string
創(chuàng)建一個(gè)標(biāo)準(zhǔn)的 HTML e-mail 鏈接。例如:
echo mailto('me@my-site.com', 'Click Here to Contact Me');
和上面的 anchor() 函數(shù)一樣,你可以通過第三個(gè)參數(shù)設(shè)置屬性:
$attributes = array('title' => 'Mail me');
echo mailto('me@my-site.com', 'Contact Me', $attributes);
safe_mailto($email, $title = '', $attributes = '')
參數(shù):
返回: A spam-safe "mail to" hyperlink
返回類型: string
和 mailto() 函數(shù)一樣,但是它的 mailto 標(biāo)簽使用了一個(gè)混淆的寫法, 可以防止你的 e-mail 地址被垃圾郵件機(jī)器人爬到。
auto_link($str, $type = 'both', $popup = FALSE)
參數(shù):
返回: Linkified string
返回類型: string
將一個(gè)字符串中的 URL 和 e-mail 地址自動(dòng)轉(zhuǎn)換為鏈接,例如:
$string = auto_link($string);
第二個(gè)參數(shù)用于決定是轉(zhuǎn)換 URL 還是 e-mail 地址,默認(rèn)情況不指定該參數(shù),兩者都會(huì)被轉(zhuǎn)換。 E-mail 地址的鏈接是使用上面介紹的safe_mailto() 函數(shù)生成的。
只轉(zhuǎn)換 URL
$string = auto_link($string, 'url');
只轉(zhuǎn)換 e-mail 地址:
$string = auto_link($string, 'email');
第三個(gè)參數(shù)用于指定鏈接是否要在新窗口打開??梢允遣紶栔?TRUE 或 FALSE
$string = auto_link($string, 'both', TRUE);
url_title($str, $separator = '-', $lowercase = FALSE)
參數(shù):
返回: URL-formatted string
返回類型: string
將字符串轉(zhuǎn)換為對(duì)人類友好的 URL 字符串格式。例如,如果你有一個(gè)博客,你希望使用博客的標(biāo)題作為 URL , 這時(shí)該函數(shù)很有用。例如:
$title = "What's wrong with CSS?";
$url_title = url_title($title);
// Produces: Whats-wrong-with-CSS
第二個(gè)參數(shù)指定分隔符,默認(rèn)使用連字符。一般的選擇有:- (連字符) 或者 _ (下劃線)
例如:
$title = "What's wrong with CSS?";
$url_title = url_title($title, 'underscore');
// Produces: Whats_wrong_with_CSS
注解
第二個(gè)參數(shù)連字符和下劃線的老的用法已經(jīng)廢棄。
第三個(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($str = '')
參數(shù):
返回: Protocol-prefixed URL string
返回類型: string
當(dāng) URL 中缺少協(xié)議前綴部分時(shí),使用該函數(shù)將會(huì)向 URL 中添加 http:// 。
像下面這樣使用該函數(shù):
$url = prep_url('example.com');
redirect($uri = '', $method = 'auto', $code = NULL)
參數(shù):
返回類型: void
通過 HTTP 頭重定向到指定 URL 。你可以指定一個(gè)完整的 URL ,也可以指定一個(gè) URL 段, 該函數(shù)會(huì)根據(jù)配置文件自動(dòng)生成改 URL 。
第二個(gè)參數(shù)用于指定一種重定向方法??捎玫姆椒ㄓ校?strong>auto 、 location 和 refresh 。 location 方法速度快,但是在 ISS 服務(wù)器上不可靠。默認(rèn)值為auto ,它會(huì)根據(jù)你的服務(wù)器環(huán)境 智能的選擇使用哪種方法。
第三個(gè)參數(shù)可選,允許你發(fā)送一個(gè)指定的 HTTP 狀態(tài)碼,這個(gè)可以用來為搜索引擎創(chuàng)建 301 重定向。 默認(rèn)的狀態(tài)碼為 302 ,該參數(shù)只適用于location 重定向方法,對(duì)于 refresh 方法無效。例如:
if ($logged_in == FALSE)
{
redirect('/login/form/');
}
// with 301 redirect
redirect('/article/13', 'location', 301);
注解
為了讓該函數(shù)有效,它必須在任何內(nèi)容輸出到瀏覽器之前被調(diào)用。因?yàn)檩敵鰞?nèi)容會(huì)使用服務(wù)器 HTTP 頭。
注解
為了更好的控制服務(wù)器頭,你應(yīng)該使用 輸出類 的 set_header() 方法。
注解
使用 IIS 的用戶要注意,如果你隱藏了 Server 這個(gè) HTTP 頭, auto 方法將無法檢測(cè)到 IIS 。 在這種情況下,推薦你使用 refresh 方法。
注解
當(dāng)使用 HTTP/1.1 的 POST 來訪問你的頁面時(shí),如果你使用的是 location 方法,會(huì)自動(dòng)使用 HTTP 303 狀態(tài)碼。
重要
該函數(shù)會(huì)終止腳本的執(zhí)行。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: