太阳能监控系统在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,则脚本运行良好。我哪里做错了??
答案 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; - 各种平台的卷曲