後台執行php頁面,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腳本如何實現後台執行

ignore_user_abort(true); // 後台運行

set_time_limit(0); // 取消腳本運行時間的超時上限

後台運行的後面還要,set_time_limit(0); 除非在伺服器上關閉這個程序,否則下面的代碼將永遠執行下去止到完成為止。

如果程序運行不超時,在沒有執行結束前,程序不會自動結束的.

=========================================

//PHP 中如何 在客戶端觸發,然後在伺服器端執行一個函數,頁面關閉也繼續執行。要先返回用戶請求不要等待時。

ob_end_clean();#清除之前的緩衝內容,這是必需的,如果之前的緩存不為空的話,裡面可能有http頭或者其它內容,導致後面的內容不能及時的輸出

header(“Connection: close”);//告訴瀏覽器,連接關閉了,這樣瀏覽器就不用等待伺服器的響應

header(“HTTP/1.1 200 OK”); //可以發送200狀態碼,以這些請求是成功的,要不然可能瀏覽器會重試,特別是有代理的情況下

//return false;//加了這個下面的就不執行了,不加這個無法返回頁面狀態,瀏覽器一直在等待狀態,可以關閉,但不是要的效果。

//die(); 或 return ;也一樣不執行下面的

//rundata();

//register_shutdown_function(“rundata”);

//return ;

ob_start();#開始當前代碼緩衝

echo “running,,,,.”;

//下面輸出http的一些頭信息

$size=ob_get_length();

header(“Content-Length: $size”);

ob_end_flush();#輸出當前緩衝

flush();#輸出PHP緩衝

#休眠PHP,也就是當前PHP代碼的執行停止,1秒鐘後PHP被喚醒,

#PHP喚醒後,繼續執行下面的代碼,但這個時候上面代碼的結果已經輸出瀏覽器了,

#也就是瀏覽器從HTTP頭中知道了服務端關閉了連接,瀏覽器將不在等待伺服器的響應,

#反應給客戶的就是頁面不會顯示處於載入狀態中,換句話說用戶可以關掉當前頁面,或者關掉瀏覽器,

#PHP喚醒後繼續執行下面的代碼,這也就實現了PHP後台執行的效果,

#休眠的作用只是讓php先把前面的輸出作完,不要急於馬上執行下面的代碼,休息一下而已,也就是說下面的代碼

#執行的時候前面的輸出應該到達瀏覽器了

sleep(1);

echo ‘這裡的輸出用戶看不到,後台運行的’;

//下面代碼的任何輸出都不會輸出給瀏覽器,因為http連接已經關了,

//所以下面的代碼的執行屬於後台運行的

ignore_user_abort(true); // 後台運行,這個只是運行瀏覽器關閉,並不是直接就中止返回200狀態。

set_time_limit(0); // 取消腳本運行時間的超時上限

rundata();

function rundata(){//do something}

=========================================

用ignore_user_abort函數實現php計劃任務

代碼如下:

?php

ignore_user_abort(true);

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(300); //半小時執行一次

}

?

=======================================

int ignore_user_abort ( [bool setting] )

這個函數的作用是指示伺服器端在遠程客戶端關閉連接後是否繼續執行下面的腳本。

setting 參數是一個可選參數。如設置為True,則表示如果用戶停止腳本運行,仍然不影響腳本的運行(即:腳本將持續執行);如果設置為False,則表示當用戶停止運行腳本程序時,腳本程序將停止運行。

下面這個例子,在用戶關閉瀏覽器後,該腳本仍然後在伺服器上繼續執行:

ignore_user_abort(true); // 後台運行

set_time_limit(0); // 取消腳本運行時間的超時上限

do{

sleep(60); // 休眠1分鐘

}while(true);

?

除非在伺服器上關閉這個程序,否則這斷代碼將永遠執行下去。

————————————————————————-

ignore_user_abort(true); // 後台運行

set_time_limit(0); // 取消腳本運行時間的超時上限

echo ‘start.’;

sleep(1000);

echo ‘end.’;

?

如何讓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如何在後台運行

最好的辦法就是AJAX來實現,我寫個JQuery AJAX 的簡單例子給你參考

例:

div id=”myform”

    p數量:input type=”text” name=”qur”//p

    p大小:input type=”text” name=”size”//p

    p顏色:input type=”text” name=”color”//p

    pbutton id=”submit”確定/button/p

/div

$(function(){

    $(“#submit”).click(function(){

        var mydata = new object();

        mydata.qur = $(“input[name=’qur’]”,”#myform”).val();

        mydata.size = $(“input[name=’size’]”,”#myform”).val();

        mydata.color = $(“input[name=’color’]”,”#myform”).val();

        $.ajax({

    type: “post”,

            url: “your_ajax.php”,

            data: mydata,

            success:function(data){

                alert(“保存成功!”);

            },

    error: function(XMLHttpRequest, textStatus, errorThrown) {

        alert(errorThrown);

    }

        });

    });

});

PHP後台任務運行

在運行前 先要了解一下 什麼是文件描述符。

什麼是文件描述符?

文件描述符是一個簡單的正整數,用以標明每一個被進程所打開的文件和socket。

最前面的三個文件描述符(0,1,2)分別與標準輸入(stdin),標準輸出(stdout)和標準錯誤(stderr)對應。

“21 file”和 ” file 21″區別?

1.php test.php 21 file :錯誤輸出到終端,標準輸出被重定向到文件file。

2.php test.php file 21 :標準輸出被重定向到文件file,然後錯誤輸出也重定向到和標準輸出一樣,所以錯誤也輸出到文件file。

nohup命令可以在用戶退出終端後仍然執行程序,

「21 /dev/null」表示不顯示標準輸出和錯誤輸出,

最後的表示推到後台執行。

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); //半小時執行一次 

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/289011.html

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

相關推薦

  • PHP和Python哪個好找工作?

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

    編程 2025-04-29
  • 打包後頁面空白的解決方案

    當我們在調試階段時,我們的app可能看起來完美無缺,但當我們進行打包時,在運行app時,我們可能會遇到白屏或空白的問題。在這篇文章中,我們將探討如何解決這種問題。 一、檢查文件路徑…

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

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

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

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

    編程 2025-04-28
  • Python操作Web頁面

    本文將從多個方面詳細介紹Python操作Web頁面的技巧、方法和注意事項。 一、安裝必要的庫 在Python中操作Web頁面,需要用到一些第三方庫。 pip install req…

    編程 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
  • 用vuefavicon管理你的頁面icon標籤

    一、什麼是vuefavicon vuefavicon是一種Vue.js插件,用於動態管理網站的favicon圖標。通常情況下,我們會將網站的icon標籤放置在html文檔的head…

    編程 2025-04-25

發表回復

登錄後才能評論