目錄
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析,ciuristring
首頁 後端開發 php教程 CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析,ciuristring_PHP教程

CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析,ciuristring_PHP教程

Jul 12, 2016 am 08:52 AM
ci框架 uri

CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析,ciuristring

本文实例讲述了CI框架URI.php中_fetch_uri_string()函数用法。分享给大家供大家参考,具体如下:

APPPATH/config/config.php中对于url 格式的拟定。

$config['uri_protocol'] = 'AUTO';

登入後複製

这个配置项目定义了你使用哪个服务器全局变量来拟定URL。
默认的设置是auto,会把下列四个方式轮询一遍。当你的链接不能工作的时候,试着用用auto外的选项。

'AUTO' Default - auto detects
'PATH_INFO' Uses the PATH_INFO
'QUERY_STRING' Uses the QUERY_STRING
'REQUEST_URI' Uses the REQUEST_URI
'ORIG_PATH_INFO' Uses the ORIG_PATH_INFO

CI_URI中的几个成员变量

$keyval = array(); //List  of cached uri segments
$uri_string; //Current  uri string
$segments //List  of uri segments
$rsegments = array() //Re-indexed  list of uri segments

登入後複製

获取到的current uri string 赋值到 $uri_string ,通过function _set_uri_string($str)。

获取到$str有几个选项,也就是_fetch_uri_string()的业务流程部分了

一、默认

$config['uri_protocol'] = 'AUTO'
登入後複製

时,程序会一次轮询下列方式来获取URI

(1)当程序在CLI下运行时,也就是在命令行下php文件时候。ci会这么获取URI

private function _parse_cli_args()
{
  $args = array_slice($_SERVER['argv'], 1);
  return $args ? '/' .implode('/',$args) : '';
}

登入後複製

$_SERVER['argv'] 包含了传递给脚本的参数 当脚本运行在CLI时候,会给出c格式的命令行参数

截取到$_SERVER['argv']中除了第一个之外的所有参数

如果你在命令行中这么操作

php d:\wamp\www\CodeIgniter\index.php\start\index

登入後複製

_parse_cli_args() 返回一个 /index.php/start/index的字符串

(2)默认使用REQUEST_URI来探测url时候会调用 私有函数 _detect_uri()

(3)如果上面的两种方式都不能获取到uri那么会采用$_SERVER['PATH_INFO']来获取

$path = (isset($_SERVER['PATH_INFO'])) ? $_SERVER['PATH_INFO']  : @getenv('PATH_INFO');
if (trim($path, '/')  != '' && $path != "/".SELF)
{
  $this->_set_uri_string($path);
  return;
}

登入後複製

(4)如果上面三种方式都不能获取到,那么就使用

$_SERVER['QUERY_STRING']或者getenv['QUERY_STRING']

$path = (isset($_SERVER['QUERY_STRING'])) ? $_SERVER['QUERY_STRING'] : @getenv('QUERY_STRING');
if (trim($path, '/') != '')
{
  $this->_set_uri_string($path);
  return;
}

登入後複製

(5)上面四种方法都不能获取到URI,那么就要使用$_GET数组了,没招了

if (is_array($_GET) && count($_GET) == 1 && trim(key($_GET), '/') != '')
{
  $this->_set_uri_string(key($_GET));
  return;
}

登入後複製

二、在config.php中设定了:

$config['uri_protocol']

登入後複製

那么 程序会自动执行相应的操作来获取uri

更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《Zend FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1127854.htmlTechArticleCI框架源码解读之URI.php中_fetch_uri_string()函数用法分析,ciuristring 本文实例讲述了CI框架URI.php中_fetch_uri_string()函数用法。分享给大家供大家...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

php如何使用CI框架? php如何使用CI框架? Jun 01, 2023 am 08:48 AM

隨著網路技術的發展,PHP成為了Web開發的重要工具之一。而其中一款流行的PHP框架——CodeIgniter(以下簡稱CI)也得到了越來越多的關注與使用。今天,我們就來看看如何使用CI框架。一、安裝CI框架首先,我們需要下載CI框架並安裝。在CI的官網(https://codeigniter.com/)上下載最新版本的CI框架壓縮包。下載完成後,解壓縮

nginx location中uri的截取如何實現 nginx location中uri的截取如何實現 May 18, 2023 pm 12:07 PM

說明:location中的root和aliasroot指令只是將搜尋的根設定為root設定的目錄,即不會截斷uri,而是使用原始uri跳轉該目錄下查找文件aias指令則會截斷匹配的uri,然後使用alias設定的路徑加上剩餘的uri作為子路徑進行查找location中的proxy_pass的uri如果proxy_pass的url不帶uri如果尾部是"/",則會截斷匹配的uri如果尾部不是"/",則不會截斷匹配的uri如果proxy_pass的url帶uri

PHP中如何使用CI框架 PHP中如何使用CI框架 Jun 27, 2023 pm 04:51 PM

PHP是一種流行的程式語言,廣泛應用於Web開發。 CI(CodeIgniter)框架是PHP中最受歡迎的框架之一,它提供了一整套現成的工具和函數庫,以及一些流行的設計模式,讓開發人員能夠更有效率地開發Web應用程式。本文將介紹使用CI框架開發PHP應用程式的基本步驟和方法。了解CI架構的基本概念和結構在使用CI架構之前,我們需要先了解一些基本的概念和結構。下

php如何使用CI4框架? php如何使用CI4框架? Jun 01, 2023 pm 02:40 PM

PHP是一種廣泛使用的伺服器端腳本語言,而CodeIgniter4(CI4)是一個流行的PHP框架,它提供了一種快速而優秀的方法來建立Web應用程式。在這篇文章中,我們將透過引導您了解如何使用CI4框架,讓您開始使用此框架來開發出眾的網路應用程式。 1.下載並安裝CI4首先,您需要從官方網站(https://codeigniter.com/downloa

PHP中的CI框架指南 PHP中的CI框架指南 May 22, 2023 pm 07:10 PM

隨著網路的發展和不斷地融入人們的生活,網路應用的開發變得越來越重要。 PHP作為一種眾所周知的程式語言,已經成為了開發網路應用程式的首選語言之一。而開發人員可以使用眾多的PHP框架來簡化開發過程,其中最受歡迎的之一是CodeIgniter(CI)框架。 CI是一個強大的PHPweb應用框架,它擁有輕量級、簡單易用、優化性能等特點,可以讓開發人員快速構建

ci框架如何引入css ci框架如何引入css Dec 26, 2023 pm 05:20 PM

CI框架中引入CSS樣式的步驟如下:1、準備CSS檔案;2、將CSS檔案儲存在CI框架專案的適當位置;3、在需要使用CSS樣式的頁面中,透過HTML的<link>標籤引入CSS文件;4、在HTML元素中使用CSS類別或ID名稱來套用對應的樣式即可。

Nginx Location指令URI符合規則是什麼 Nginx Location指令URI符合規則是什麼 May 14, 2023 pm 11:58 PM

1.介紹location指令是http模組當中最核心的一項配置,根據預先定義的url匹配規則來接收用戶發送的請求,根據匹配結果,將請求轉發到後台伺服器、非法的請求直接拒絕並返回403、 404、500錯誤處理等。 2.location指令語法location[=|~|~*|^~|@]/uri/{…}或location@name{…}3、uri匹配模式location指令分為兩種匹配模式:1>普通字符串匹配:以=開頭或開頭無引導字元(~)的規則2>正則匹配:以~或~*開頭表示正則匹配,~*

URL和URI之間有什麼區別 URL和URI之間有什麼區別 Aug 10, 2023 pm 05:15 PM

URL和URI之間的區別是:1、URI是用來標識互聯網上的資源的字串序列,而URI並不關注資源的位置,而只關注它的標識符;2、URL提供了關於資源在互聯網上位置的詳細信息,而URI是一種更廣義的概念,不僅涵蓋了URL,還包括了用於標識資源的其他形式,如URN;3、URL是URI的一種特殊類型,用於定位互聯網上的資源,而URI則是一種更廣義的標識符,用於唯一地標識和命名資源。

See all articles