php實現後台運行(PHP運行)

本文目錄一覽:

如何讓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-tw/n/278340.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-19 13:21
下一篇 2024-12-19 13:21

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • Spring調用超時,後台還在運行的解決方法

    本篇文章將從以下幾個方面詳細介紹Spring調用超時,後台還在運行的解決方法: 一、設置超時時間 通過設置超時時間可以確保Spring調用在一定時間內返回結果並結束,避免出現後台還…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台伺服器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24
  • PHP數組去重詳解

    一、array_unique函數 array_unique是php中常用的數組去重函數,它基於值來判斷元素是否重複,具體使用方法如下: $array = array(‘a’, ‘b…

    編程 2025-04-24
  • PHP導出Excel文件

    一、PHP導出Excel文件列寬調整 當我們使用PHP導出Excel文件時,有時需要調整單元格的列寬。可以使用PHPExcel類庫中的setWidth方法來設置單元格的列寬。下面是…

    編程 2025-04-24

發表回復

登錄後才能評論