PHP使用非标准端口从外部URL加载数据

时间:2015-05-13 23:23:29

标签: javascript php curl

太阳能监控系统在http://68.37.209.78:8050/生成一个包含实时性能数据的页面。我想抓取并解析这些数据,将PHP变量传递给JavaScript变量,我可以将其输入HighCharts来制作漂亮的图形。

到目前为止,我已经设法通过使用file_get_contents()或fopen()来了解如何使用PHP来读取外部文件。看来这些函数都不会起作用,如果它是我试图访问的非标准端口,就像这里的情况一样。我找到了一个使用cURL()的替代方法:

<?php
$cURL = curl_init('http://68.37.209.78'); //Initialise cURL with the URL to connect to
curl_setopt($cURL, CURLOPT_PORT, 8050); //Set the port to connect to
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, 8050); //Get cURL to return the HTML from the curl_exec function
$HTML = curl_exec($cURL); //Execute the request and store the result in $HTML

echo $HTML; //Output the HTML
?>

当我尝试运行此页面时,该页面似乎甚至不想加载。如果我将URL更改为某个任意地址,并将端口更改为80,则脚本运行良好。我哪里做错了??

1 个答案:

答案 0 :(得分:0)

您确定可以从服务器访问该端口吗?尝试在控制台中运行此命令,对于Linux或Windows应该是相同的:

curl -i -XGET http://68.37.209.78:8050

HTTP/1.1 200 OK
Content-Type: text/plain
Date: Wed, 13 May 2015 23:39:55 GMT
Connection: keep-alive
Transfer-Encoding: chunked

Power Panel 1.2 (Solar2X5B.js)
(C) W/M^2--(C)-- L/M
OAT PYRA HXI HXO FLW
 21   55  16  22   3

       SIGN       TEMP(C) W/M^2 (%) (A) (%) (A) STATS -----LEVEL-----
ID SOH  dBm VERSN PNL TNK Sgain PNL PNL TNK TNK PL TK PLH PLL TKH TKL HT
01   1  -89  1.48  15  19    52   0   0   0   0 04 00  0   0   0   1   0
02   1  -93  1.48  16  27    17   0   0   0   0 04 00  0   0   0   1   0
03   1  -82  1.48  18  23    35   0   0   0   0 24 00  0   0   0   1   0
04   1  -95  1.48  16  20    48   0   0   0   0 1C 1C  0   0   0   1   0

可能有一些阻止您访问的防火墙规则。 您可以使用curl -v进行更详细的调试输出。

http://curl.haxx.se/download.html&lt; - 各种平台的卷曲