1. 程式人生 > >讓你的PHP也能執行JS並獲得JS函式的返回值

讓你的PHP也能執行JS並獲得JS函式的返回值

關於這個功能,我找了很久了,是因為在做某個功能介面時,由於對方在請求資料前對請求的引數進行了加密,導致了無法通過程式模擬提交資料,因此需要想辦法提前處理這個引數然後再提交。

下面直接看實現過程:

$jsData = file_get_contents("x.js");

$oScript = new COM("MSScriptControl.ScriptControl"); 

$oScript->Language = "JavaScript"; 

$oScript->AllowUI = false; 

$oScript->AddCode("$jsData"); 

$a = $oScript->Run("signin", "15169110086"); 

echo $a;

首先要載入物件的JS內容,當然如果函式不是足夠大可以直接在 addcode 裡面手動寫上,當然一般情況下既然採用這種方法了,那麼對應的JS可能有多個方法,可能會非常複雜,因此就需要提前載入JS內容到變數中去,這裡對簽到做了一個簡單的實現,親們可以建立自己的JS檔案進行動測試,這裡僅做日誌記錄。

值得注意的是:此方法僅運行於 win 環境下面