300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析【PHP】

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

时间:2019-05-07 23:29:27

相关推荐

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

后端开发|php教程

CI框架,URI.php,_fetch_uri_stri

后端开发-php教程

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

源码分享论坛,vscode运行代码在调试框,ubuntu 网卡信息,tomcat如何设置分页符号,sqlite内存优化,佛山网页设计培训,域服务器用户管理,.net图片批量上传插件下载,jq移动前端框架,爬虫12关,php写模板,夏易seo,springboot导出文档,哪些有名的 网站,什么是网页源代码,星外api代理模板,dede后台配置文件,漂亮导航页面,内容管理系统是什么,五折卡 程序lzw

$config[uri_protocol] = AUTO;

这个配置项目定义了你使用哪个服务器全局变量来拟定URL。

默认的设置是auto,会把下列四个方式轮询一遍。当你的链接不能工作的时候,试着用用auto外的选项。

下注网站源码,vscode是如何调试,Ubuntu 特效 mac,tomcat窗口显示中文,列表爬虫,财务软件php,江北seo优化公司收费,开源电影点播网站,手机 自己设计模板lzw

‘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

qq华夏源码,vscode向上复制,ubuntu版mx3,tomcat错误类型,sqlite 需要安装吗,wordprss 手机端插件,前端用得多的框架,爬虫培训机构排名,php 入数组,蓝狐seo管理系统,网站 小偷程序,网页java,仿快视频模板,jsp注册页面完整代码 含日期地址,vfp酒店管理系统,微擎小程序后台修改lzw

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()的业务流程部分了

A、默认

$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;}

B、在config.php中设定了:

$config[uri_protocol]

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。