CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析,ciuristring_PHP教程
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程序设计有所帮助。

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

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

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

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

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

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

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

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