当前位置:首页 » 编程语言 » php后台执行

php后台执行

发布时间: 2022-05-02 03:20:01

❶ 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 ' . " ";

$update = true;

}

}

if ($update) {

ThinkLog::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('BehaviorCronRunBehavior'),

);

③、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 HomeController;

use ThinkController;

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 }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>欢迎使用 <b>ThinkPHP</b>!</p></div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>','utf-8');

}

*/

public function index()

{

$contents = file_get_contents("test.txt");

//每次访问此路径将内容输出,查看内容的差别

var_mp($contents);

exit;

$this->assign("contents", $contents);

$this->display();

}

//定时执行的方法

public function crons()

{

//在文件中写入内容

file_put_contents("test.txt", date("Y-m-d H:i:s") . "执行定时任务!" . " <br>", FILE_APPEND);

}

}


这样定时执行任务我们就写好了,每隔5秒我们访问任何项目的url,然后查看根目录下的test.txt文件就会发现里面的内容变化。

注意:当你修改间隔时间时会发现没有生效,这是你需要将Runtime/Data文件夹下的缓存文件删除,间隔时间缓存存放在CRON_CONFIG.php文件中。


纯净的项目文件下载地址:http://download.csdn.net/detail/hua_w/9637267 欢迎大家下载指正。

2、方法2:v3.2.2


此方法和方法一没有多大的区别。


①、tags.php


在/Application/Common/Conf目录下新建tags.php文件。(此和方法一处一样)


[php] view plain

<?php

return array(

//'配置项'=>'配置值'

'app_begin' =>array('BehaviorCronRunBehavior'),

);

②、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")."执行定时任务!" . " <br>";

此时我们就可以访问项目的url,然后我们会发现在Application/Runtime/目录下生成了~crons.php文件,文件内容如下:


[php] view plain

<?php

return array (

'cron' =>

array (

0 => 'myplan',

1 => 60,

2 => 1398160322,

),

);

?>

这样就可以观察结果了!

❷ php中怎么实现后台执行

用ajax实现异步加载


然后


i

gnore_user_abort(true);
//即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.
set_time_limit(0);
while(1){
$fp=fopen('time_task.txt',"a+");
$str=date("Y-m-dh:i:s")." ";
fwrite($fp,$str);
fclose($fp);
sleep(5);//半小时执行一次
}

❸ php自带服务器命令php -S ..怎么让它在后台运行

当你在命令行启动这个Web Server时,如果指定了一个PHP文件,则这个文件会作为一个“路由”脚本,意味着每次请求都会先执行这个脚本。如果这个脚本返回 FALSE ,那么直接返回请求的文件(例如请求静态文件不作任何处理)。否则会把输出返回到浏览器。
Example #1 启动Web服务器 服务于当前目录
$ php -S localhost:8000
Example #2 启动时指定根目录
$ php -S localhost:8000 -t foo/
Example #3 使用路由(Router)脚本
$ php -S localhost:8000 router.php

❹ 如何在PHP里启动一个进程以后让它在后台运行

在LINUX/UNIX下:

WINNT的start命令比WIN9X的多很多选项。

❺ php中怎么实现后台执行

具体代码如下:
<?php
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, '');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
?>
​PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。
它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,
执行效率比完全生成HTML标记的CGI要高许多;
PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。希望能帮到你,我还在后盾人线下面授培训上课学习呢现在没时间,有不会的可以问我,加油吧~( ̄▽ ̄~)~

❻ PHP做的后台服务端程序应该怎么运行。具体实现的方法。。

运行方法与你的应用需求有关,可以看看相关的文档,或者研究一下源程序。

一般有两种启动方法,一是安装WEB服务器,把工程的文件复制到WEB服务器的文件夹下,另外一种方法就是鼠标双击主程序启动服务。

通过查看源代码可以猜测启动方式,以WEB方式运行的代码里面使用HTML进行输出,以服务方式启动的代码里面往往有循环、侦听网络端口这些内容。

❼ PHP怎么在后台持续运行

通常的做法是在服务器增加计划任务,指定好间隔时间执行php程序。以Windows服务器为例:
http://jingyan..com/article/ca00d56c767cfae99febcf73.html
以上是添加计划任务的具体步骤。

❽ 如何让PHP文件在后台运行,不限时间到运行完全

方案1:php
<?php
$db=mysql_connect(...);
$mysql_select_db(...);

$sqlStr=.....;
$res=mysql_query($sqlStr);
....
....
mysql_close($db);
?>

运行的时候,在终端用以下命令:
%PHP_HOME%/bin/phpur_php_file.php&

方案二:
mysql-uxxxx-pxxxx-Ne"select*from....."db_name>tmpfile&
执行完了之后,把tmpfile里边的退格键( )替换成逗号“,”,把文件后缀改为csv就可以

❾ php如何在后台运行

在后台执行,也就是cli模式。
去php安装目录找到php.exe这个文件,并且在命令行下执行它。具体方法去查手册或google:php
cli模式。
不过你说的这个需求,用不用cli模式都无所谓。其实这只是个异步请求而已。
你说的a脚本在执行过程中给b脚本传输数据。其实可以使用http协议,然后post或者get参数来达到传数据的目的。
5楼给你的那个函数,其实就是放在a脚本中用来通过http协议请求b脚本的一个函数。你可以在b文件中直接使用$http_get_vars或$http_post_vars来得到a脚本传过去的数据。
另外还可以使用curl库来实现这种模拟http请求。

热点内容
编译好的内核如何升级另一台主机 发布:2025-05-15 02:00:06 浏览:757
弹反脚本 发布:2025-05-15 01:58:24 浏览:585
安卓按键大师怎么用 发布:2025-05-15 01:54:12 浏览:686
手机ea服务器连不上怎么办 发布:2025-05-15 01:35:03 浏览:450
数据库数据插入语句 发布:2025-05-15 01:30:01 浏览:871
js是无需编译直接运行吗 发布:2025-05-15 01:28:30 浏览:476
android文件夹重命名 发布:2025-05-15 01:13:50 浏览:481
cns脚本 发布:2025-05-15 01:13:38 浏览:722
数据结构与算法笔试题 发布:2025-05-15 01:04:20 浏览:417
搜狗输入法如何直接编辑配置文件 发布:2025-05-15 00:51:47 浏览:668