Ⅰ 关于php里面CI框架的问题
那是CI的问题,只能见一个文件夹,如果想多个文件夹,记得找我我晚上有时间1215175666
Ⅱ 现在php技术要学习哪些内容
基础:搭建lamp环境,php语言(函数,结构,数据库Drivers)
中级:缓存(redis、memcache等),数据库设计(主从分离),服务器配置(linux系统学习、动静分离、负载均衡等)
高级:熟练运用各大框架(thinkphp、CI、YII、laravel等)建议:thinkphp最简单,可以由此入门
骨灰级:研究php语言核心,加入php核心团队,做文档,拓功能,推动php发展(膜拜鸟哥)
Ⅲ php的CI框架,如何使用session
里面有两种session的使用方法:
1是php的原始的session使用方法,这个很简单,$_SESSION['name']="name",然后在需要的地方显示:echo $_SESSION['name'];
2是codeigniter这个框架的一个方法:
下面就详细讲解如何使用这个有点点复杂的方法:
首先,在\ci\application\config下面的config.php文件中找到:$config['encryption_key'] = '';这个里面随便填什么值都可以,但是不能为空。一般是英文啊,不要钻牛角尖。
接着在\ci\application\config下面的auto.php文件中找到:$autoload['libraries'] = array('');里面要填写:$autoload['libraries'] = array('session');或者在适当的地方如control文件夹里面的相应文件中(一般是在构造方法中)写:$this->load->library('session');这样也行。
现在环境配置好了,现在就是写代码了:
在需要放入session的地方写:
$this->session->set_userdata('name','yang');
这样session里面就有了值了。
显示值:
echo $this->session->userdata('name');
如果是array,则:
$newdata = array(
'username' => 'johndoe',
'email' => '[email protected]',
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
以下是转载的别人的详细的有点废话的相关知识:
Sessions会在每个页面载入后开始运行,所以session类必须首先被初始化。
1、您可以在控制器中初始化,也可以在系统中自动加载(译者注:在autoload.php设定)$autoload['libraries'] = array('session');
2、要在您的控制器构造函数中初始化session类,您可以使用 $this->load->library 函数:$this->load->library('session');一旦被载入, session就可以这样使用: $this->session。
session类的绝大部分都会在后台运行,所以初始化session时,它session数据会被自动读取、创建和更新。
Sessions 是怎样工作的?
需要知道的非常重要的一点就是,session类一旦被初始化,它就会自动运行。对于后面的事情,您可以完全不作理会。正如您将会在下面看到的一样,您可以正常使用session来工作,甚至还可以添加自己的session数据,而在这一切的过程中,读、写和更新的操作都是自动完成的。
当页面载入后,session类就会检查用户的cookie中是否存在有效的session数据。如果session数据不存在(或者已经过期),那么就会创建一个新的session并把他保存在cookie中。如果session数据存在,那么他的信息就会被更新,同时cookie也会被同时更新。每次更新都会重新生成session_id的值。
默认情况下, Session Cookie 每隔 5 分钟才会更新一次,这样会减少对处理器的负荷。如果你重复的装载页面, 你会发现"上次活动"的时间在五分钟,或多余五分钟的时候才会变化,也就是 cookie上次被写入的时间。 这个时间可以通过设置 application/config/config.php 文件里的 $config['sess_time_to_update'] 行来改变。
Ⅳ php,ci框架是怎么加载css文件和js文件的,这两种文件通常放在哪里一般放在视图下面还是根目
一般不建议放在application中,新建一个文件夹webroot,与application和system目录同级,把index.php移动到webroot,修改index.php中的./application和./system目录为../application和../system,所有css和js和image都放在webroot中,当然要用文件夹分开,用的时候使用<?php echo base_url();?>css/css.css等
Ⅳ PHP DUXCMS如何开启页面缓存
1.页面缓存。页面缓存指之前加载过的页面以文件方式缓存在服务器中,在一段时间内再次加载相同页面时无需重新执行页面逻辑直接加载静态页面。rubyPHP的页面缓存是自动进行的,在config/tpl.php中可配置是否启用缓存以及缓存文件的有效期。当然这仅仅是全局设置,在调用视图时可重新指定是否启用缓存以及缓存有效期。
2.SQL缓存。sql缓存指之前执行过的查询sql语句以及他的结果缓存在内存中,在一段时间内用相同的sql语句执行查询操作时不经过数据库直接返回内存中数据。rubyPHP使用Redis以键值方式缓存sql语句以及他的对应结果。rubyPHP能够在php7上完美运行。(附:关于windows php7 redis 扩展的下载参照我的另一篇博客:http://blog.csdn.net/fanghailiang2016/article/details/51396649)。rubyPHP重写了mysql_query以及mongo_query方法,在执行查询sql查询语句时会优先加载未过期的缓存数据。与页面缓存类似,sql缓存的全局配置路径为config/redis.php,在具体执行sql语句前可重新执行是否使用缓存以及缓存有效期。
3.读写分离。读写分离是建立在主从同步基础上为了减轻服务器压力,将查询语句转移到从服务器上执行的解决方案。rubyPHP重写了mysql_query,mongo_query函数,除了对查询语句进行内存级缓存的优化,同时也将查询语句放到了从服务器上执行。mysql的主从配置文件路径为config/mysql.php。
4.html压缩。html压缩配合页面缓存,前者降低了服务器端压力,后者减少了输出内容所占空间,将html文件中的空格换行等进行压缩,减少了输出文件的大小,在一定程度上保护了html的安全。
rubyPHP在代码结构上模仿CI,在功能上模仿thinkPHP。
rubyPHP的功能包含以下几方面:
1.使用了thinkPHP的M方法操作数据库。对于一些简单的sql语句无需手工写,用熟悉的M()->where()->limit()->find()这样的语法即可完成。曾经面试有人问我为什么thinkPHP的M方法能够进行连续操作,现在终于明白是使用了单利模式。
2.屏蔽了数据库的差异。M方法的另一个优点是用来组件sql语句,对高层屏蔽数据库差异。当然,对于复杂的查询,M方法是做不到的,此时可以使用已被重写过的mysql_query以及mongo_query执行你的sql语句。
3.自定义路由。这一点模仿了CI的route.php,将url同控制器的映射关系写到一个配置文件里。
不足之处:
view文件不支持变量循环输出。目前的解决方案是使用angularjs调用接口在页面输出内容。框架示例程序便是一个使用angularjs的和bootstrap的界面。
Ⅵ php CI框架,一个function生成session,另一个调用session为空,求大神指点,谢谢!
CI框架的session是不可靠的, 他把session经过序列化或加密后,保存在cookie里;
某些原因, 在并发连接时, 比如IE浏览器, CI的session类就会重新生成 session_id; 导致原有的session丢失; 建议采用PHP原生session(即保存在session文件或memecache);
Ⅶ 关于php ci构架中使用memcached的问题
还需要安装 memcache php的扩展