本文目录一览:
- 1、Thinkphp灞昵﹊f和eq的区别和比较
- 2、thinkphp灞昵﹊f和eq的区别和比较实例分析
- 3、thinkphp中怎么实现后台执行任务
- 4、thinkphp的f怎么获取
- 5、ThinkPHP中,关联查询,怎么定义别名?
Thinkphp灞昵﹊f和eq的区别和比较
在TP模板语言中。if和eq都可以用于变量的比较。总结以下几点:
1.两个变量的比较:
if condition=”$item.group_id eq $one.group_id”
eq name=”item.group_id” value=”$one.group_id”
前者的IF是判断失败的,用后者的neq(或eq)则OK。
以后如果遇到更多的问题,请去后盾人看下教学视频,这样你会更加易懂。
thinkphp灞昵﹊f和eq的区别和比较实例分析
在ThinkPHP模板语言中。if和eq都可以用于变量的比较。总结以下几点:
一、两个变量比较:
if condition=”$item.group_id eq $one.group_id”
eq name=”item.group_id” value=”$one.group_id”
前者的IF是判断失败的,用后者的neq(或eq)则OK。需要注意:name那里是不用加$变量符号的,而value那里要加$变量符号。
二、值为空(NULL)时:
if condition=”name neq ‘NULL’”just a test/if
neq name=”name” velue=”"just a test/neq
前者的IF是判断失败的,用后者的neq(或eq)则可以识别null为”"
三、多维数组且下标为0的时:
if condition=”name.0 neq ‘test’”just a test/if
eq name=”name.0″ velue=”test”just a test/eq
前面的用IF是不能通过编译的,用后面的eq就可以这么做,有更多问题到后盾网论坛问题求助专区,我的回答能否帮到你
thinkphp中怎么实现后台执行任务
ThinkPHP实现定时执行任务的两种方法
1、方法一:v3.2.1
①、ThinkPHP/Library/Behavior/CronRunBehavior.class.php文件
在这里首先要说的就是这个自动执行任务文件,官方所给的这个文件存在BUG,我是用的是v3.2.1版本,后面的版本是否有改正大家可以尝试一下。
[php] view plain
?php
/**
* =======================================
* Created by WeiBang Technology.
* Author: ZhiHua_W
* Date: 2016/9/22 0005
* Time: 上午 11:12
* Project: ThinkPHP实现定时执行任务
* Power: 自动执行任务
* =======================================
*/
namespace Behavior;
class CronRunBehavior
{
public function run($params)
{
if (C('CRON_CONFIG_ON')) {
$this-checkTime();
}
}
private function checkTime()
{
if (F('CRON_CONFIG')) {
$crons = F('CRON_CONFIG');
} else if (C('CRON_CONFIG')) {
$crons = C('CRON_CONFIG');
}
if (!empty($crons) is_array($crons)) {
$update = false;
$log = array();
foreach ($crons as $key = $cron) {
if (empty($cron[2]) || $_SERVER['REQUEST_TIME'] $cron[2]) {
G('cronStart');
R($cron[0]);
G('cronEnd');
$_useTime = G('cronStart', 'cronEnd', 6);
$cron[2] = $_SERVER['REQUEST_TIME'] + $cron[1];
$crons[$key] = $cron;
$log[] = 'Cron:' . $key . ' Runat ' . date('Y-m-d H:i:s') . ' Use ' . $_useTime . ' s ' . "\r\n"; -thinkphp的f
$update = true;
}
}
if ($update) {
\Think\Log::write(implode('', $log));
F('CRON_CONFIG', $crons);
}
}
}
}
此段代码已经将bug修复,大家可以将其复制到 “ ThinkPHP/Library/Behavior/CronRunBehavior.class.php ” 文件中进行保存。
②、tgs.php
在Application/Common/Conf文件夹中新建tags.php文件,进行标签设置。
[php] view plain
?php
return array(
//'配置项'='配置值'
'app_begin' =array('Behavior\CronRunBehavior'),
);
③、config.php
在Application/Common/Conf文件夹中的config.php文件进行自动运行配置。
[php] view plain
?php
return array(
/* 自动运行配置 */
'CRON_CONFIG_ON' = true, // 是否开启自动运行
'CRON_CONFIG' = array(
'测试执行定时任务' = array('Home/Index/crons', '5', ''), //路径(格式同R)、间隔秒(0为一直运行)、指定一个开始时间
),
);
④、IndexController.class.php
在Application/Home/Controller/IndexController.class.php文件中进行定时执行任务的编写。
[php] view plain
?php
/**
* =======================================
* Created by WeiBang Technology.
* Author: ZhiHua_W
* Date: 2016/9/22 0005
* Time: 上午 11:20
* Project: ThinkPHP实现定时执行任务
* Power: 自动执行任务方法控制器
* =======================================
*/
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller
{
/*
public function index(){
$this-show('style type="text/css"*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px }/stylediv style="padding: 24px 48px;" h1:)/h1p欢迎使用 bThinkPHP/b!/p/divscript type="text/javascript" src="" charset="UTF-8"/script','utf-8');-thinkphp的f
}
*/
public function index()
{
$contents = file_get_contents("test.txt");
//每次访问此路径将内容输出,查看内容的差别
var_dump($contents);
exit;
$this-assign("contents", $contents);
$this-display();
}
//定时执行的方法
public function crons()
{
//在文件中写入内容
file_put_contents("test.txt", date("Y-m-d H:i:s") . "执行定时任务!" . "\r\nbr", FILE_APPEND);
}
}
这样定时执行任务我们就写好了,每隔5秒我们访问任何项目的url,然后查看根目录下的test.txt文件就会发现里面的内容变化。
注意:当你修改间隔时间时会发现没有生效,这是你需要将Runtime/Data文件夹下的缓存文件删除,间隔时间缓存存放在CRON_CONFIG.php文件中。
纯净的项目文件下载地址: 欢迎大家下载指正。
2、方法2:v3.2.2
此方法和方法一没有多大的区别。
①、tags.php
在/Application/Common/Conf目录下新建tags.php文件。(此和方法一处一样)
[php] view plain
?php
return array(
//'配置项'='配置值'
'app_begin' =array('Behavior\CronRunBehavior'),
);
②、crons.php
在/Application/Common/Conf目录下新建crons.php文件。(此处和方法一有区别,注意区分。)
[php] view plain
?php
return array(
//myplan为我们计划定时执行的方法文件,2是间隔时间,nextruntime下次执行时间
//此文件位于/Application/Cron/目录下
'cron' = array('myplan', 2, nextruntime),
);
③、myplan.php
在/Application/Common/目录下新建 Cron文件夹,里面新建文件myplan.php文件。
[php] view plain
?php
echo date("Y-m-d H:i:s")."执行定时任务!" . "\r\nbr";
此时我们就可以访问项目的url,然后我们会发现在Application/Runtime/目录下生成了~crons.php文件,文件内容如下:
[php] view plain
?php
return array (
'cron' =
array (
0 = 'myplan',
1 = 60,
2 = 1398160322,
),
);
?
这样就可以观察结果了!
thinkphp的f怎么获取
ThinkPHP中的S方法的用法,F方法其实是S方法的一个子集功能,仅用于简单数据缓存,并且只能支持文件形式,不支持缓存有效期,因为采用的是PHP返回方式,所以其效率较S方法较高,因此我们也称之为快速缓存方法。-thinkphp的f
F方法的特点是:
简单数据缓存;
文件形式保存;
采用PHP返回数据方式加载缓存;
支持子目录缓存以及自动创建;
支持删除缓存和批量删除;
写入和读取缓存
F('data','test data');
默认的保存起始路径是DATA_PATH(该常量在默认配置位于RUNTIME_PATH.'Data/'下面),也就是说会生成文件名为DATA_PATH.'data.php'的缓存文件。
注意:确保你的缓存标识的唯一,避免数据覆盖和冲突。
下次读取缓存数据的时候,使用:
$Data = F('data');
我们可以采用子目录方式保存,例如:
F('user/data',$data); // 缓存写入
F('user/data'); // 读取缓存
就会生成DATA_PATH.'user/data.php' 缓存文件,如果user子目录不存在的话,则会自动创建,也可以支持多级子目录,例如:
F('level1/level2/data',$data);
如果需要指定缓存的起始目录,可以用下面的方式:
F('data',$data,TEMP_PATH);
获取的时候则需要使用:
F('data','',TEMP_PATH);
删除缓存
删除缓存也很简单,使用:
F('data',NULL);
第二个参数传入NULL,则表示删除标识为data的数据缓存。
支持批量删除功能,尤其是针对子目录缓存的情况,假设我们要删除user子目录下面的所有缓存数据,可以使用:
F('user/*',NULL);
又或者使用过滤条件删除,例如:
F('user/[^a]*',NULL);
ThinkPHP中,关联查询,怎么定义别名?
比如你有两个表 pre_first pre_second 并且你数据库配置文件已经配置了表前缀那么你可以这么写
$First=new \Think\Model("First");
//联表查询条件
$arrJoin=array(
"__SECOND__ as s on f.id=s.id ",
);
$list=$First-alias('f')-join($arrJoin,'LEFT')-select();