【问题标题】:PHP read temperature values from local web serverPHP 从本地 Web 服务器读取温度值
【发布时间】:2017-01-23 12:20:30
【问题描述】:

我对 PHP 完全陌生。 我想创建一个 php 页面,我们将显示来自本地服务器的值, 给定室温。

我试试这个:

<html>
<head>
  <title>test</title>
 </head>
 <body>
<?php

$homepage = file_get_contents('http://192.168.5.92/');
echo $homepage;
?>


<script type="text/javascript">
    setTimeout (
        function() { window.location.reload(); },
        2500
    )
</script>

我从本地服务器看到整个页面。

但我只想显示温度,它在方括号中。

来自我本地服务器 192.168.5.92 的 Index.html

Room1: [22.08] ° C 
Room2: [17.15] ° C 
Room3: [19.56] ° C 

感谢您的帮助!

【问题讨论】:

  • 你的问题是什么?你试过什么?你知道 preg_match 函数吗?
  • 如果您从本地服务器获取内容,那么更改那里的输出不是更有意义吗?
  • 我只尝试“file_get_contents”
  • 我有 4 个本地服务器和新页面,我想将所有温度值合并到一个页面中。
  • 我想从新页面:

标签: php parsing file-get-contents


【解决方案1】:

试试这个

<?php
    $temp1 = "Room1: [22.08] ° C";
    $newTemp = substr($temp,8,5);
    echo $newTemp;
    // OUTPUT : 22.08
?>

通过使用这种方法,你只会得到括号之间的温度

【讨论】:

  • ??这不起作用...我得到值 22.08.... 总是 :) 我想在本地服务器 192.168.5.92 Room1 上读取值:[XX.YY] °C XX 和 YY 它会改变...。还有更多建议?
  • 读取文件时本地服务器发送给页面的信息能不能不改变。您必须发送或返回一些变量才能获得该结果。您能否包含来自本地服务器的获取温度的代码?
  • 我换房间等... :)
【解决方案2】:

如果无法更改 index.html 则使用以下代码

$var = file_get_contents("http://192.168.5.92/");
$values = explode("° C", $var);
array_pop($values);
foreach($values as $row){
  $temp = explode(":",$row);
  $temperature[] = $temp[1]. "° C";
}
print_r($temperature);  //Array ( [0] => [22.08] ° C [1] => [17.15] ° C [2] => [19.56] ° C )

【讨论】:

    【解决方案3】:

    我几乎没有改变你的代码,现在我明白了:

    $var = file_get_contents("http://192.168.5.92/");
    $values = explode("]", $var);
    array_pop($values);
    foreach($values as $row){
      $temp = explode("[",$row);
      $temperature[] = $temp[1]. "° C";
    }
    print_r($temperature); 
    
    
    
    
     Array ( [0] => -3.00 ° C [1] => 87.31 ° C [2] => 51.19 ° C [3] => 46.19 ° C [4] => 49.38 ° C [5] => 5.00 ° C )
    

    好吧,至少成功一次……

    不,我想要新行中的每个值。并且没有“数组([0] =>” 不能打印单词 example "ROOM1:" 后面的值??

    【讨论】:

      【解决方案4】:

       <!DOCTYPE HTML>
          <html>
          <center>
          <H1>
          Heading:
          <H1>
          <font color=black size=7><br />
          <font color=black size=7>Outside temp.:[-3.00] &#176;
          C
          <font color=black size=7><br />
          <font color=black size=7>Stove: [82.87] &#176;
          C
          <font color=black size=7><br />
          <font color=black size=7>Supply: [51.69] &#176;
          C
          <font color=black size=7><br />
          <font color=black size=7>Return: [46.25] &#176;
          C
          <font color=black size=7><br />
          <font color=black size=7>Water: [49.38] &#176;
          C
          <font color=black size=7><br />
          <font color=black size=7>DIFF: [5.44] &#176;
          C
      

      【讨论】:

        【解决方案5】:

        我找到了解决方案。

        function get_string_between($string, $start, $end){
                $string = " ".$string;
                $ini = strpos($string,$start);
                if ($ini == 0) return "";
                $ini += strlen($start);   
                $len = strpos($string,$end,$ini) - $ini;
                return substr($string,$ini,$len);
        }
        $arduino92 = file_get_contents("http://192.168.5.92/");
        $stove = get_string_between($arduino92, "Stove: [", "]");
        echo "Stove: $stove"."<br>";
        

        问题解决了! 问候

        【讨论】:

          猜你喜欢
          • 2021-09-23
          • 1970-01-01
          • 1970-01-01
          • 2021-09-07
          • 2020-03-21
          • 1970-01-01
          • 1970-01-01
          • 2019-09-14
          • 2019-04-19
          相关资源
          最近更新 更多