zoukankan      html  css  js  c++  java
  • php优秀框架codeigniter学习系列——CI_URI类学习

    这篇文章主要介绍CI核心框架工具类CI_URI。

    该类主要用来解析uri和决定路由的。关于URI和URL的关系请参考这位朋友的文章。简单来说URI是唯一定位的资源,URL是唯一资源的一个网络可能访问路径。所以从这个角度来看,作者在定义类名的时候还是非常严谨的,因为由于解析路由的存在,同一个资源可能有多个访问路径。

    1.__construct()

    该构造函数,主要针对enable_query_strings=true的情况作出一些处理。

    举例说明:

    1)当值为true时候,URL为:http://example.com?a=me&b=something&c=here

    2)当值false的时候,URL为:http://example.com/me/something/here

    因为在大多数情况下,我们会把enable_query_strings设为false。

    在构造函数中,就是针对设为false的时候,针对'REQUEST_URI'和‘QUERY_STRING‘ 两种protocol(规则) 分别处理uri。

    2._parse_request_uri()

    当protocol参数的值是‘REQUEST_URI‘时候,采用该函数解析uri。

    一系列的操作,清理并得出不含‘/’相对路径,例如:http://47.100.9.155/skin/index/start?a=1 返回的uri 是 index/start。

    两一个操作是清理和设置$_SERVER['QUERY_STRING']的值,并且把相应的参数存入$_GET数组中。

    3._parse_query_string()

    当protocol参数的值是‘QUERY_STRING‘时候,采用该函数解析uri。

    这个函数与_parse_request_uri的区别是采用$_SERVER['QUERY_STRING']的值来获取uri,并且返回。到底采用_parse_request_uri方法或者_parse_query_string方法来获取uri是由web服务器(如apache,nginx等)的路由配置来决定的。

    4._set_uri_string()

    该函数是protect 属性,意味着它不能被外部直接调用,只能被内部调用或者被子类继承调用。在这里,暂时只是被构造函数调用。

    该函数主要做了以下的事情:

       1)移除不可见的字符,和多余的/;

       2)如果有之前在框架中设置了文件名后缀,在这里将其移除;比如有可能是一个example文件,非要伪装成静态文件example.html,在这里会将.html去除掉;

      3)将各参数挑出来并过滤后存入segments[]数组。

            

    剩下的一些公共函数主要是对uri的一些获取操作,可以参考官方汉化后的文档:https://codeigniter.org.cn/user_guide/libraries/uri.html。

  • 相关阅读:
    获取项目路径
    Form提交时隐藏Token验证
    属性路由参数约束
    使用Cookie来统计浏览次数,当天重复刷新不增加
    图片上传预览 支持html5的浏览器
    icheck.min.js 选中效果
    bootstrap-modal.js 居中问题
    七十二、SAP中内表的修改,添加条件语句,多条目修改
    七十一、SAP中内表的修改,改一行数据,或一行的某个字段
    七十、SAP中内表批量指定位置插入
  • 原文地址:https://www.cnblogs.com/Andres/p/9028053.html
Copyright © 2011-2022 走看看