當前位置:首頁 » 編程語言 » 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請求。

熱點內容
wemall微商城源碼 發布:2025-05-14 22:15:20 瀏覽:803
隆地優選交易密碼是什麼 發布:2025-05-14 21:53:23 瀏覽:94
強酸強鹼存儲櫃 發布:2025-05-14 21:45:16 瀏覽:564
車輛參數配置包括什麼 發布:2025-05-14 21:31:03 瀏覽:163
怎麼引入安卓項目 發布:2025-05-14 21:26:39 瀏覽:824
游戲輔編程 發布:2025-05-14 21:18:49 瀏覽:688
三菱plc一段二段密碼什麼意思 發布:2025-05-14 21:17:16 瀏覽:528
電腦開機密碼忘記了怎麼破解 發布:2025-05-14 21:09:40 瀏覽:57
pythondict格式 發布:2025-05-14 21:09:38 瀏覽:887
落葉片拍攝腳本 發布:2025-05-14 20:40:49 瀏覽:800