2012-02-12 91 views
2

我有一個cron作業運行一個php腳本,但是我需要執行一些html和javascript來爲實際的腳本執行工作。php cron作業執行javascript以及

將javascript轉換爲php不是一個選項。

基本上我需要它的行爲,就好像一個人每次運行cronjob時都在查看頁面。

編輯: 該腳本使用來自不同站點的JavaScript加密一些密碼,以便它能夠登錄到我的帳戶在該網站上,並且JavaScript是成千上萬的行。腳本流的方式是:將數據發送到網站>獲取它發回的數據>使用站點javascript更改數據>將html表單值設置爲javascript函數返回的數據值>提交html表單以將信息返回到php>發送數據登錄我。我知道代碼是非常低劣的,但它是唯一的方式,我可以想到做到這一點,而不必重寫所有的JavaScript他們使用加密密碼到PHP

+8

究竟是如何執行HTML?你在你的cron工作中專門試圖完成什麼?因爲你似乎可能會以這種錯誤的方式進行。給我們更多關於你的意圖的信息,你可能會得到更好的解決方案。 – rdlowrey 2012-02-12 15:16:07

+1

將其轉換爲PHP有​​什麼問題?當然,如果必須調用javascript **,那麼它會在某處調用PHP腳本? – Westie 2012-02-12 15:18:39

+0

該腳本使用來自不同站點的JavaScript來加密一些密碼,以便它能夠登錄到我的帳戶,並且該javascript是成千上萬行。腳本流的方式是:將數據發送到網站>獲取它發回的數據>使用站點javascript更改數據>將html表單值設置爲javascript函數返回的數據值>提交html表單以將信息返回到php>發送數據登錄我。我知道代碼是非常低劣的,但它是唯一的方法,我可以想到做到這一點,而不必重寫所有用於加密密碼的JavaScript。 – Max 2012-02-12 15:29:48

回答

-2

cronjobs總是隻運行在服務器端。當沒有客戶端 - 你怎麼能期望JavaScript工作真的?

無論如何解決方案是:使用cronjob運行另一個PHP腳本 - 實際上調用您想使用CURL運行的PHP腳本。 例如file1.php - 您要執行的文件,並希望該頁面上的JavaScript能夠正常工作。

file2.php - 你創建的另一個文件...在這個文件中使用curl來調用file1.php(確保你提供完整的http://路徑,就像你在瀏覽器中輸入一樣 - 你可以傳遞像get /在html表單上的post方法也是如此)。在你的cronjob中調用file2.php。

確保curl可用,並且沒有任何阻止http呼叫的防火牆規則,即端口80呼叫到同一臺服務器。大部分服務器都滿足上述兩個條件。

----------對不起 - Kristian Antonsen是對的 - 所以不要認爲這是完整的答案。然而,我正在離開這個,因爲有人可能有這樣的想法食物-----

+2

-1。就像通過telnet客戶端連接一樣,CURL連接到Web服務器。沒有解析HTML,也沒有執行任何JavaScript。 – kba 2012-02-12 15:29:56

+1

這不起作用,它仍然會在服務器端執行,因此所有的Javascript都不會被執行。 – skimberk1 2012-02-12 15:31:14

5

丘可以嘗試Node.JS在服務器上運行JavaScript代碼。

+1

是的,我很確定這是運行Javascript服務器端的唯一方法。 – skimberk1 2012-02-12 15:33:20

1

安裝您最喜愛的網頁瀏覽器,然後讓cron作業以url作爲參數運行瀏覽器。

/usr/bin/firefox www.example.com/foo.html 

你可能要等待一分鐘左右,然後殺死進程,或確定一個更好的方式來發現當它完成。

+0

這是我原本以爲的東西,但我有一個廉價的虛擬主機運行這個腳本,我沒有能力安裝任何東西。 – Max 2012-02-12 15:52:14

+0

我會試試。我敢打賭你可以。花費在安裝瀏覽器上的工作量可能比其他解決方案少得多。 – goat 2012-02-12 16:07:33