我試圖在遠程服務器上運行腳本,並將該腳本的結果返回給調用腳本。一個變量被髮送到遠程腳本,並且基於該遠程腳本來檢索遠程服務器上的文件名列表,並將這些文件名作爲數組返回。但是,在包含文件中使用返回不會返回實際值,它只會中止腳本。除此之外,遠程腳本運行沒有問題,我可以讓它爲我var_dump文件名列表,但這對我本地腳本沒什麼好處。兩臺服務器都由我們擁有(我們是我的公司)。來自包含在遠程文件中的返回值
我已經嘗試一些簡單的像這樣只是爲了看看,如果我能得到一個返回值,它沒有工作:
本地腳本:
$test = include "http://remote_host_address/remote_script.php";
var_dump($test);
遠程腳本:
$ret = "Hello World";
return $ret;
此輸出int(1)
。遠程腳本的代碼本身完美地工作,我已經測試過,並且我作爲get變量發送的變量也沒有任何問題。唯一的問題是我沒有從remote_script獲取返回值。
此外,是allow_url_include
是爲本地服務器。但是,遠程服務器已關閉;但這不應該有所作爲:http://php.net/allow-url-include。
我已經查看了一些關於此主題的其他相關問題,而且似乎沒有任何東西可以完全描述我的問題。任何幫助將不勝感激,因爲我花了幾個小時已經看過這個,並沒有取得任何進展。
這是一個不好的做法,應該避免。無論如何,@Glavić解決方案可能會起作用。你是遠程的,包括一個PHP文件。這意味着http封裝器將要求遠程服務器執行php文件,並且include將會在後面嘗試**以包含(意味着在本地執行)其輸出。這裏的輸出沒有任何內容,因爲你的遠程腳本不會回顯任何內容。因此包括返回「1」,意味着它成功地包含了空輸出。 – Kethryweryn
@Kethryweryn - 好的做法與否,我不會爭辯。在任何情況下,我都嘗試過使用遠程腳本echo/var_dump,並且它會打印到屏幕上,但它不會影響include語句的返回值。另外,Glavic的解決方案在技術上可以運行腳本,但腳本在本地運行;我希望它在遠程服務器上運行以檢索文件列表。如果還有其他辦法可以實現這一點,我願意接受建議。 – Meir