zoukankan      html  css  js  c++  java
  • PathInfo模式,thinkPHP模板与控制之间的关系

    pathinfo,一种伪静态的用法,路由模式,即路径:http://blog.csdn.net/bjash/article/details/8466789 而普通模式则是:http://blog.csdn.net/控制器/方法?a=details&m=8466789,就是根据路径内容转成数组,再用数组分析给整个php框架,做伪静态路径也比较常见

    1.让 Apache 支持 PathInfo

    配置的 Apache 版本 : 2.2.13

    在配置文件中加入

    <Files *.php>

    AcceptPathInfo On

    </Files>

    这样 Apache 就可以支持针对 php 文件的 PathInfo 了.

    2、pathinfo 模式 需要 php.ini 开启下面这个参数

    cgi.fix_pathinfo=1

    path_info模式:http://www.xxx.com/index.php/模块/方法

    而且nginx 环境下,如果 uri 含中文,PATH_INFO就被截断了,会新产生一个 ORIG_PATH_INFO,才是正确的,

    3.让 Nginx 支持 PathInfo

    在配置文件里添加

    location ~ .php

    {

    fastcgi_pass 127.0.0.1:9000;

    fastcgi_index index.php;

    set $path_info “”;

    set $real_script_name $fastcgi_script_name;

    if ($fastcgi_script_name ~ “^(.+?.php)(/.+)$”) {

    set $real_script_name $1;

    set $path_info $2;

    }

    fastcgi_param SCRIPT_FILENAME /var/html/$real_script_name;

    fastcgi_param SCRIPT_NAME $real_script_name;

    fastcgi_param PATH_INFO $path_info;

    include conf/fcgi.conf;

    }

    thinkPHP中pathinfo四种访问模式
    0:普通模式。http://bbs.aaa.net/index.php?m=user&a=d
    m代表模块a代表方法
    1:叫pathinfo模式,它下面还分两种模式。默认访问模式是http://bbs.aaa.net/index.php/user/index
    2:rewrite重写(伪静态)。可以自己写相关的rewrite规则,也可以使用系统为我们提供的rewrite规则。http://bbs.aaa.net/user/index。
    apache手册中有一块是URL重写规则,可以看一下。
    3:叫做兼容模式。它的路径访问http://bbs.aaa.net/index.php?s=/user/g
        当服务器上不支持pathinfo模式的时候,但之前的路径访问模式上面,全都用的pathinfo模式,它会提示路径模式不正确。这时,为解决这种问题,可以用标号为3的兼容模式来处理,这些都是支持GET的,所以用兼容模式可以解决它。
    设置访问模式,要在conf.php文件内:
        ‘URL_MODEL’=> 0;
        设置为2时,因为开启URL重写,不论是重写的还是被重写的,都能通过原有路径来进行访问。
        如果要开启rewrite模式的话,1、要确认你的服务器已经开启了apache的rewrite模块。apache下的httpd.conf文件中的LoadModule rewrite..这一行的#去掉,然后重启服务器。2、在与主入口文件,项目入口文件同级的目录下面新建一个.htaccess文件。记事本用vi打开,再另存为.htaccess文件。或者是直接打开记事本,在另存为的文件名中写“.htaccess”一定要有引号。建好后可以直接把手册中的rewrite部分粘过来,就可以启用rewrite了,也就是可以直接使用http://bbs.aaa.net/user/index了,不用写index.php或admin.php这些入口文件了。
        如果使用2 rewrite模式,会加大服务器的性能消耗。
        -------
        conf.php中设置
        'PATHINFO_URL_MODEL'=>1普通模式http://.../index.php/m/user/a/index加上m和a,即使把m和a的位置换一下也不影响结果a/index/m/user
        
        普通模式必须要在前面加上/a/模块/a/动作,并且顺序可以发生变化,如果要用GET传值 ,在这种PATHINFO模式下,要加斜线后面再加值,如:http:../index.php/m/user/a/index/username/zhangsan
        
        2、智能模式,值为2
        pathinfo默认就是智能模式,/index.php/user/index意思就是user模块下的index方法
        这种方式下GET传值 :/username/张三
        它的值传方法与普通模式传值一致
        -----------
        ‘URL_PATHINFO_DERP’='-';
        这个设置是把分隔符变为中橫线(-),默认是/
        ------
        改定界符
        'APP_DEBUG'=>'true'开启调试模式,一旦开启,它会模拟linux操作系统来帮我们识别大小写。并且开启之后方法名的大小写与,模板文件的大小写有关。但模拟出来的文件夹命名,不区分大小写。
        
        ---
        默认情况下每个方法下面的$this->display()是显示跟这个方法名相同的模板的,如果不想显示这个方法名的模板,而想显示另一个文件(同级)内容,直接写$this->display('anthor');就会用anthor.html,括号里不用写后缀名
        
        跨模块显示(以下示例的$this->display均在Index模块下的index方法中)
        $this->display('模块名:模板名');如$this->display('user:index');就会显示user模块下的index文件
        
        跨主题,也叫跨皮肤
        在default建一个skin,在skin下建一个user文件夹,再在它下面建一个new.html
        $this->display('skin@user:new');那这样的话,再显示这个页面的时候会红色背景
        (‘皮肤的目录名@找哪个目录的名称:模板的名称’);
        ---
        全路径输出:
        在主入口文件下,建一个Public目录,在它下建一个ss.html,在它下面再加一个背景颜色
        $this->display('./Public/ss.html');再打开这个页面就是绿色背景
        注:加载文件的位置全以主入口文件定位。即相对于index.php这个文件定位的。
       ----
        还有种绝对路径,按你的磁盘来写('E:/AppServ/www/project/Public/ss.html');效果一样
        ---
        $this->display('指定位置',‘编码’,‘文件的mimie类型’);比如需要输出xml文件,就可以写成$this->display('index','utf-8','text/xml');

  • 相关阅读:
    统计与数学必须划出界限
    Maximum likelihood from incomplete data via the EM algorithm (1977)
    Mixtures of Gaussians and the EM algorithm
    http://cs229.stanford.edu/syllabus.html
    Recurrent neural networks are very powerful, because they combine two properties
    multi-layer Recurrent Neural Network (RNN, LSTM, and GRU) for training/sampling from character-level language models
    Turning complete
    hsv hsb rgb lab
    Local Response Normalization 60 million parameters and 500,000 neurons
    Rethinking the Inception Architecture for Computer Vision
  • 原文地址:https://www.cnblogs.com/j-king/p/3657238.html
Copyright © 2011-2022 走看看