編碼的世界 / 優質文選 / 文明

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


2022年7月26日
-   

關於這個功能,我找了很久了,是因為在做某個功能接口時,由於對方在請求數據前對請求的參數進行了加密,導致了無法通過程序模擬提交數據,因此需要想辦法提前處理這個參數然後再提交。
下面直接看實現過程:
$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 環境下面

熱門文章