thinkphp专题提供thinkphp的最新资讯内容,帮你更好的了解thinkphp。
thinkphp修改分页后的数据,TP5paginate
我有两个表,<code>table 1</code>的字段为<code>webID, project, web</code>,我使用下面的PHP代码(ThinkPHP框架)来
一起聊聊thinkPHP3.2.3中sql注入漏洞
浅析laravel、lumen、tp三个框架的性能对比
我需要编写一个支持 ThinkPhp3 的工作流模块。 我尝试了一个工作流引擎(tpflow、thinkphp 工作流),
我无法理解 <code>::get</code> 和 <code>thinkphp</code> 中的 <code>laravel</code>,我可以找到 <code>Session::get</code> 或
TP6验证码验证失败的原因以及解决办法
分析ThinkPHP防止重复提交表单的方法实例
Thinkphp整合微信支付功能详解
laravel与thinkphp区别是什么
带你详细了解laravel框架与thinkPHP框架的区别
关于laravel5.6与thinkphp3.2使用redis共享session的方案问题描述方案设计解决方案
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架。
环境centos7 thinkphp 5.0 think-worker 1.0.1 Workerman version:3.5.30 PHP version:5.6.9 thinkphp 5.0使用workerman,启动workerman服务端报错pcntl_signal() has been disabled for s
漂亮的thinkphp 跳转页封装示例 项目是要一点点按优先级进行优化的,现在到优化thinkphp的跳转页了. <?php if(C('LAYOUT_ON')) { echo '{__NOLAYOUT__}'; } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>跳转中</title> <style> .buffer{ background- ...
在开启了调试模式之后,我们会看到更加详细的错误信息,调试模式的作用在于显示或者记录了更多的日志信息,以便我们在项目开发过程中快速定位和解决问题。开启调试模式很简单,只要在项目配置文件里面设置PHP代码'APP_DEBUG' => true,开启调试模式之后,系统在运行的时候首先会检查项目是否有定义调试配置文件,如果没有定义则调用框架默认的调试配置文件里面的参数,这些是系统为调试模式预设的默认配置。系统的默认调试配置文件位于ThinkPHPCommondebug.php。在这个默认的调试配置文件里面,系统开启了日志记录、关闭了页面防刷新机制、关闭了模板缓存,记录了执行过程中的SQL语句和运行时间,并且开启了页面运行时间显示和Trace功能。如果你觉得默认的调试配置不符合你的项目调试需要,你还可以在项目里面定义调试配置文件。调试模式下面不会生成项目编译缓存,但是仍然会生成核心编译缓存,如果不希望生成核心缓存文件的话,可以在项目入口文件里面设置NO_CACHE_RUNTIME,例如:PHP代码define('NO_CACHE_RUNTIME',True);以及设置对编译缓存的内容是否进行去空白和注释,例如:PHP代码define('STRIP_RUNTIME_SPACE',false);则生成的编译缓存文件是没有经过去注释和空白的,仅仅是把文件合并到一起,这样的好处是便于调试的错误定位,建议部署模式的时候把上面的设置为True或者删除该定义。
thinkphp内置了一个可以媲美smarty的模板引擎,给我们带来了很大的方便。调用函数也一样,可以和smarty一样调用自己需要的函数,而官方也内置了一些常用的函数供大家调用。 比如今天我们说的截取字符串函数,在thinkphp模板引擎里可以这样写:{$vo.title|msubstr=0,5,’utf-8′,false} 至于{$vo.title}这个大家肯定不陌生了。就说说后边的函数msubstr吧。它代表的意思是截取字符串$vo.title,从0个字符开始截取,截取5个字符。使用的是utf-8编码,默认截取后不显示省略号,如果要显示省略号,直接把false改成true就可以啦。 函数解释: msubstr($str, $start=0, $length, $charset=”utf-8″, $suffix=true)$str:要截取的字符串$start=0:开始位置,默认从0开始$length:截取长度$charset=”utf-8″:字符编码,默认UTF-8$suffix=true:是否在截取后的字符后面显示省略号,默认true显示,false为不显示 ps:如果不能正常调用,那说明你没有加载函数库,可以使用 Load('extend');来加载函数,把它放到action中就可以啦~! 经试用:官方的msubstr函数好像无论如何也加不上省略号,官网论坛上找了一个修改方法,经测试可以正常使用~! 修改Commonextend.php文件的msubstr函数为如下代码即可:  PHP Code复制内容到剪贴板 function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)  {      if(function_exists("mb_substr")){          if($suffix)               return mb_substr($str, $start, $length, $charset)."...";          else              return mb_substr($str, $start, $length, $charset);      }      elseif(function_exists('iconv_substr')) {          if($suffix)               return iconv_substr($str,$start,$length,$charset)."...";          else              return iconv_substr($str,$start,$length,$charset);      }      $re['utf-8']   = "/[x01-x7f]|[xc2-xdf][x80-xbf]|[xe0-xef][x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/";      $re['gb2312'] = "/[x01-x7f]|[xb0-xf7][xa0-xfe]/";      $re['gbk']    = "/[x01-x7f]|[x81-xfe][x40-xfe]/";      $re['big5']   = "/[x01-x7f]|[x81-xfe]([x40-x7e]|xa1-xfe])/";      preg_match_all($re[$charset], $str, $match);      $slice = join("",array_slice($match[0], $start, $length));      if($suffix) return $slice."…";      return $slice;  
在Smarty模板引擎格式化时间戳smarty 常量输出:{$smarty.now|date_format:”%Y-%m-%d %H:%M:%S”}Thinkphp模板引擎格式化方法:{$create_time|date=”Y-m-d”,###}
Thinkphp的默认缓存方式是以File方式,在/Runtime/Temp 下生成了好多缓存文件。服务器装了memcached后想给更改成memecache方式在Conf/config.php 中添加'DATA_CACHE_TYPE' => 'Memcache','MEMCACHE_HOST'   => 'tcp://127.0.0.1:11211', 'DATA_CACHE_TIME' => '3600',下载CacheMemcache.class.php 到你的项目中。Thinkphp 的 Action调用Memcache方法import("@.ORG.CacheMemcache");$cache = Cache::getInstance();$cache->set("uid",'1231');$cache->get("uid");$cache->rm("uid");$cache->clear();
TP 中获取客户端IP地址的系统公共函数是:function get_client_ip()。返回值就是IP地址。查询IP地址所在国家与地区的类文件是IpLocation.class.php,位于ThinkPHPLibORGNet目录下。类名是IpLocation,方法是public function getlocation($ip=”);//省略时查询客户端IP所在地址。返回的是一个数组。没有查到的话返回值为空;查到的话,数组有值为:$location['ip'];$location['country'];$location['area'];查询客户端IP及其对应地区的具体应用过程就是:import(‘ORG.Net.IpLocation’);$ip=new Iplocation();//新建一个IP查询对象$location=$ip->getlocation();//省略时表示查询客户端IP.$location可以直接输出使用,键名如上。要是想查询特定IP或域名所在地区,过程是:import(‘ORG.Net.IpLocation’);$ip=new Iplocation();//新建一个IP查询对象$ipname=’202.38.68.68′;//或者可以用域名,如$ipname=’www.64hi.com’;$location=$ip->getlocation($ipname);//$location可以直接输出使用,键名如上。要是只要查询客户端IP地址,可以直接用系统函数,如:$ip=  $ip->get_client_ip();  //很多网站都是 $ip=  get_client_ip(); 其实都是错误的,大家要注意了。