2015-10-07 55 views
-1

我沒有捲曲可用於這個舊系統(PHP4),因此無法使用,更新或添加。它不是一臺生產機器,只用於內部使用。通過PHP發送獲取請求 - 無捲曲

在我的瀏覽器,我可以輸入以下命令:

http://192.168.0.1/device?action=COMMAND

,並在192.168.0.1設備將動作命令傳遞給它。 這很好,有用。對此設備的訪問僅限於一組特定的IP地址。

我希望能夠從PHP腳本中調用該URL。我的PHP服務器在批准的列表中,所以這不成問題。

我試過file_get_contents和fread,但都沒有工作。

任何任何想法,我可以嘗試嗎?

感謝

回答

1

您可以使用此去:

http_get('http://192.168.0.1/device', $ArrayOfParameters); 

然而,你可能需要看看sockets或者你可以看看Pecl_Http

Pecl_Http

Sockets

您不應該使用PHP 4。它已停產,因此不會收到任何安全補丁。 - PHP 4 Discountinued

+0

感謝您的回覆。這個盒子沒有http_get支持,所以我又被卡住了。 – JeffVader

+0

@JeffVader - 你不應該使用PHP 4.我的回答說,它已經停止 –

0

這應該工作:

function GetRequest($URL){ 

    $get = @file_get_contents($URL); 

    if($get === FALSE) 
     return 0; 

    return $get; 

} 

使用:

$result = GetRequest("http://localhost/test.php?foo=bar");

還檢查什麼IP如果你的IP限制你的服務器上運行。

+0

謝謝 - 我已經做到了,並echo'd $結果返回0 沒有錯誤顯示,但似乎沒有發生。 如果我在我的瀏覽器中使用與GetRequest中使用的相同的URL,它將起作用。 我需要做的就是發送一個GET請求到IP地址,我需要使用用戶: http://192.168.0.1/device?action=COMMAND 上192.168.0.1設備應該再行動我會看到在日誌中的命令。 – JeffVader

+0

該文件沒有被找到,你有沒有嘗試只是做'$ result = GetRequest(「http://192.168.0.1/」);'如果你'print_r($ result);'之後得到0那麼它的原因是你的服務器在ACL中被192.168.0.1 –

+0

拒絕。我刪除了所有其他條目,現在它從我的瀏覽器中失敗,所以我知道該設置已更新。 我只添加了該IP地址,我仍然得到0 是不是因爲我使用的是: http://192.168.0.1/device?action=COMMAND 和Not: HTTP:/ /192.168.0.1/device.php?action=COMMAND – JeffVader