2017-01-23 8 views
-1

Я совершенно новичок в PHP. Я хочу создать страницу 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> 

Я вижу всю страницу из моего локального сервера.

Но я хочу показать только температуру, которая находится в квадратных скобках.

Index.html из моего локального сервера 192.168.5.92

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

Спасибо за помощь!

+1

и что у вас есть вопрос? Что вы пробовали? Знаете ли вы функции preg_match? – donald123

+1

Если вы получаете контент с вашего локального сервера, woul не имеет смысла менять выход там вместо этого? –

+0

Я только пытаюсь «file_get_contents» – CBox

ответ

0

Попробуйте

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

Используя этот метод, вы получите только Temprature между скобками

+0

?? Это не работает ... Я получаю значение 22.08 .... всегда :) Я хочу читать значение на локальном сервере 192.168.5.92 Room1: [XX.YY] ° C 10 XX и YY это меняется .. .. Любые предложения? – CBox

+0

Не можете ли вы изменить информацию о том, что локальный сервер отправляет страницу, когда вы читаете файл. Должна быть какая-то переменная, которую вы отправляете или возвращаете, чтобы получить этот результат. Можете ли вы включить код с локального сервера, который получает tempratures? –

+0

Прилагаю исходный код index.html – CBox

0

Если вы не можете изменить 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) 
+0

Спасибо, я попробую, но страница пуста .... – CBox

+0

Это означает номер шоу между «:» и «° C»? – CBox

0

Я немного изменю ваш код, и теперь я вижу:

$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) 

Хорошо, хотя бы один успех ...

Нет, я хочу, чтобы каждое значение в новой строке. и без "Array ([0] =>" Это невозможно напечатать значение после слов, например "Room1:". ??

0

<!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 
0

я нашел решения

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>"; 

проблема решена С уважением

 Смежные вопросы

  • Нет связанных вопросов^_^