2013-04-30 54 views
3

X量我跑了Apache,PHP,MySQL在我使用Windows任務調度到我的本地服務器上打開「cron作業」(PHP腳本)的Windows 7。在php中,我想在30分鐘後關閉該窗口中的選項卡(以確保腳本已經運行)。我知道如何在javascript中使用setTimeout()和window.close()函數來完成它,但我在這段代碼中避免使用javascript。有沒有辦法在PHP中做到這一點?或者如果有人知道如何在Windows任務調度程序中執行此操作,那也不錯。腓關閉窗口的時間

每當我尋找它的谷歌,所有的彈出是關閉窗口的JavaScript的方式。

+4

你的cron工作應該通過命令行調用php腳本,不應該存在瀏覽器窗口(標籤)。 – 2013-04-30 19:38:35

+0

PHP是一個服務器端腳本,它不能對客戶端的瀏覽器進行任何操作。但是,如果服務器與客戶端在同一臺PC上,則可以查看窗口中的PHP exec()函數和taskkill,但這會關閉整個瀏覽器,而不僅僅是該選項卡。 – HamZa 2013-04-30 19:40:23

+0

@Dagon我會怎麼做? – Vince 2013-04-30 19:42:06

回答

0

如果你不需要看什麼你頁面顯示,而不是使用Web瀏覽器,使用一些非交互的工具,獲取網站,像wget或捲曲。它們都應該作爲可執行的Windows二進制文件提供。這將保持像PHP正常瀏覽器一樣的PHP腳本行爲,除了JavaScript,你提到的,希望避免並且不會被執行。 Wget或cURL只會獲取生成頁面的內容。

Wget的 -​​

捲曲 - http://curl.haxx.se/download.html(在頁面的底部,你有幾個版本捲曲適用於Windows)。

0

下面的代碼將打開IE瀏覽器中提到($url)的URL,並在睡眠參數傳遞高達你想要的窗口保持打開(參數是以秒爲單位)的時間。

//The code starts from here: 
$browser = new COM("InternetExplorer.Application"); 
$handle = $browser -> HWND; 
$browser -> Visible = true; 
$browser -> Width = 1100; 
$browser -> Height = 700; 
//$url=your url you want to open 
print_r($browser -> Navigate($url)); 
while ($browser -> Busy) 
{ 
     com_message_pump(5000); 
} 
//The time you think is sufficient to open your web page 
sleep(10); 
$browser -> Quit();