ThinkPHP3.2.3引用第三方类库的问题

最近在做页面的抓取工作,用到了一个很方便的项目——QueryList,这是基于PhpQuery开发的。 因为只需要很少的代码就能完成复杂的正则抓取,所以我决定将它集成到ThinkPHP使用。 由于ThinkPHP3.2使用了命名空间,所以我一开始想要将QueryList里的类文件都加上命名空间,以规范化。但后面折腾了好久,未果(毕竟这项目require的文件太多了,且一个方法又同时写了静态和非静态,改起来难度还是比较大的)。Ok,咱还是用比较原始的方法吧。 于是我将这个第三方项目文件放在Org下 import('Org.Jae.QueryList');//导入类 $hj = \QueryList::Query($url,$reg);//这里记得要加上\,表示该类是属于根命名空间的

2015-06-02 · 1 分钟 · 8 字

ThinkPHP3.2.3中数据库字段大小写问题

自从TP升级为3.2.3升级后,默认对数据库字段进行全部小写化。官方是这么解释的: 规范起见,默认的数据库驱动类设置了 字段名强制转换为小写,如果你的数据表字段名采用大小写混合方式的话,需要在配置文件中增加如下设置: 'DB_PARAMS' => array(\PDO::ATTR_CASE => \PDO::CASE_NATURAL),

2015-04-28 · 1 分钟 · 8 字

ThinkPHP里关于禁用客户端缓存的问题

为了避免用户点击浏览器的后退按钮和前进按钮触发提交,导致重复数据。有一种方法可以设置header头中的Cache-control为no-cache和no-store。该属性默认是private的。 Cache-directive 说明 public 所有内容都将被缓存 private 内容只缓存到私有缓存中 no-cache 所有内容都不会被缓存 no-store 所有内容都不会被缓存到缓存或 Internet 临时文件中 must-revalidation/proxy-revalidation 如果缓存的内容失效,请求必须发送到服务器/代理以进行重新验证 max-age=xxx (xxx is numeric) 缓存的内容将在 xxx 秒后失效, 这个选项只在HTTP 1.1可用, 并如果和Last-Modified一起使用时, 优先级较高 易点SEO随笔有一篇博客解释得很浅显: 其作用根据不同的重新浏览方式分为以下几种情况: 1.打开新窗口(_blank) private、no-cache、must-revalidate 再次访问服务器 Cache-control: max-age=5(表示当访问此网页后的5秒内再次访问不 会去服务器) 2.在地址栏回车 值为private或must-revalidate则只有第一次访问时会访问服务器,以后就不再访问。 值为no-cache,那么每次都会访问。 值为max-age,则在过期之前不会重复访问。 3.按后退按扭 值为private、must-revalidate、max-age,则不会重访问, 值为no-cache,则每次都重复访问 4.按刷新按扭 无论为何值,都会重复访问 ThinkPHP的view缓存机制里默认是使用private的。 ThinkPHP\Library\Think\View.class.php第92行 我使用的是TP3.2,可以在配置文件中设置该属性,就不需要注释该行代码了。 ‘HTTP_CACHE_CONTROL’ => ’no-cache,no-store’ 但是这么一来,整个项目的页面的Cache-control都是no-cache,no-store了。只针对某些页面设置为no-cache,no-store。有没有更灵活的处理方法呢?有时间再看看。

2015-03-20 · 1 分钟 · 50 字