本文目錄一覽:
如何讓PHP文件在後台運行,不限時間到運行完全
方案1:php
?php
$db = mysql_connect( … );
$mysql_select_db(…);
$sqlStr = …..;
$res = mysql_query($sqlStr);
….
….
mysql_close($db);
?
運行的時候, 在終端用以下命令:
%PHP_HOME%/bin/php ur_php_file.php
方案二:
mysql -uxxxx -pxxxx -Ne “select * from …..” db_name tmpfile
執行完了之後, 把tmpfile裡邊的退格鍵(\t)替換成逗號“,”, 把文件後綴改為csv就可以
php 如何讓腳本在後台運行
進入php源程序目錄中的ext目錄中,這裡存放着各個擴展模塊的源代碼,選擇你需要的模塊,比如curl模塊:cd curl
執行phpize生成編譯文件,phpize在PHP安裝目錄的bin目錄下
/usr/local/php5/bin/phpize
運行時,可能會報錯:Cannot find autoconf. Please check your autoconf installation and
the $PHP_AUTOCONF
environment variable is set correctly and then rerun this
script.,需要安裝autoconf:
yum install autoconf(RedHat或者CentOS)、apt-get install
autoconf(Ubuntu Linux)
/usr/local/php5/bin/php -v
執行這個命令時,php會去檢查配置文件是否正確,如果有配置錯誤,
這裡會報錯,可以根據錯誤信息去排查!
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中怎麼實現後台執行??
用 ajax 實現異步加載
然後
i
gnore_user_abort(true);
//即使Client斷開(如關掉瀏覽器),PHP腳本也可以繼續執行.
set_time_limit(0);
while(1) {
$fp = fopen(‘time_task.txt’,”a+”);
$str = date(“Y-m-d h:i:s”).”\n\r”;
fwrite($fp,$str);
fclose($fp);
sleep(5); //半小時執行一次
}
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”;
$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′);
}
*/
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,
),
);
?
這樣就可以觀察結果了!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/278340.html