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