当前位置: 移动技术网 > IT编程>开发语言>PHP > CI中的url相关函数以及路由设置和伪静态技术

CI中的url相关函数以及路由设置和伪静态技术

2018年04月18日  | 移动技术网IT编程  | 我要评论

  当使用CI框架进行开发时,我们的一些数据传递的URL不应该写死,可以使用如下方法;比如说我们需要表单提交一个数据;

    1.在controller控制器中我们需要先创建一个加载helper和视图的方法;

        eg:pubulic fuction add(){

            $this -> load -> helper( ‘ url ’ );  //首先加载 helper( 'url' ) 到超级对象中,site_url函数在helper的辅助函数中;

            $this -> load -> view( ' user/add ' )  //其次加载视图文件;

          }

    2.创建一个insert方法来接收post提交的数据;

    3.最后就可以在view视图中使用site_url函数生成URL地址

        <form action = " <?php echo site_url( ' user/insert ' )> " method="post">

  官方的文档中是这么说明的;

    根据配置文件返回你的站点 URL 。index.php (获取其他你在配置文件中设置的 index_page 参数) 将会包含在你的 URL 中,另外再加上你传给函数的 URI 参数,以及配置文件中设置的 url_suffix 参数。

    推荐在任何时候都使用这种方法来生成你的 URL ,这样在你的 URL 变动时你的代码将具有可移植性;

  site_url(控制器/方法);该函数返回项目根目录的url ;

  也可以根据需要配置helper辅助函数url的自动加载,但是不推荐使用,如url使用频繁可使用;具体配置操作如下;

    在application/config/autoload.php中查找到$autoload[' helper '] = array( 'url' )进行配置;

  路由设置,伪静态,隐藏入口文件

    在application/config/routes.php文件中查找到$route[ ' default_contorller ' ] = "welcome" ;进行配置,默认配置是welcom控制器;

    伪静态技术:

      CI中的伪静态通常是在application/config/routes.php文件中写一段正则表达式来完成;

        eg : $route[ ' news / [/d]{6} / ([\d] + )\.html ' ] = 'article/show/$1';

        //当输入 http://主机名/入口文件/news/234456/4.html 时则会访问到 主机名/入口文件/article/show/4  //(随便输6个数)(这里4是传的参数);    

      有正则表达式在中间支持,可以使url任意显示成你想显示的url;

    隐藏入口文件:

      首先要在 apache/conf/httpd.conf 文件中设置 LoadModule rewrite_module modules/mod_rewrite.so 取消注释,重启apache;再新建一个文本文件另存为,文件名输入".htaccess"保存放入CI根目录下(由于.htaccess文件无法直接创建),再在.htaccess文件中输入以下内容即可;

      <Ifmodule mod_rewrite.c>

        RewriteEngine on

        RewriteCond %{REQUEST_FILENAME} ! -d

        RewriteCond %{REQUEST_FILENAME} ! -f

        RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

      </Ifmodule>

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网