@fokin_nikolay1989

Как дорабоать php что б начал пинговать?

Добрый день, подскажите как можно доработать php что бы начал работать вывод
Вот код:
<?php
 $file = file('test.txt');

   $i = 0;

   foreach($file as $line)
   {
    	$i++;
	$arr = explode(';', $line);
        $v = echo '<pre>' . $arr[0] . '</pre>' ;
        $ip = echo '<pre>' . $arr[1] . '</pre>' ;
        exec("ping -c 1 -w 200 $ip",$output, $status);
                if ($status==0)
                        echo "<a href='http://$ip.'<br>':8080' title='$v'<br>''>Online</a>\n";
                else
                    	echo "<a href='http://$ip.'<br>':8080' title='$v'<br>''>Offline</a>\n";
   }
?>

Может что то с присвоением переменных
$v = echo '<pre>' . $arr[0] . '</pre>' ;
        $ip = echo '<pre>' . $arr[1] . '</pre>' ;
  • Вопрос задан
  • 288 просмотров
Пригласить эксперта
Ответы на вопрос 4
@developer007
если это http сервер судя по порту, то отдает ли он что то?
может тупо обычным file_get_contents обойтись? и отлавливать try catch упала ли функция

вообще это по крону делается и записывается статус в БД
а потом юзеру рисуется
Ответ написан
Комментировать
AnatolTh
@AnatolTh
Full Stack Developer
<?php
  $file = file('test.txt');
  $i = 0;
  foreach($file as $line) {
    $i++;
    $arr = explode(';', $line);
    $v = $arr[0];
    $ip = $arr[1];
    $output = shell_exec("ping $ip -n 1");
    $text = iconv("cp866","utf-8", $output);
    $pos = strpos($text, "потеряно = 1");
    if ( $pos > 0 ) { 
      echo "<a href='http://$ip:8080' title='$v'>Offline</a><br>";
    } else {
      if (strlen($text) > 300 ) {
        echo "<a href='http://$ip:8080' title='$v'>Online</a><br>";
      } else {
        echo "<a href='http://$ip:8080' title='$v'>-</a><br>";
      }
    }
  }
?>
Ответ написан
flapflapjack
@flapflapjack
на треть я прав
Может что то с присвоением переменных
$v = echo '' . $arr[0] . '' ;
$ip = echo '' . $arr[1] . '' ;


Именно. Что вы хотите этими строчками получить? echo - это вывод на экран, при чем тут присвоение?
Ответ написан
<?php
header('Content-type: text/html; charset=utf-8')
?>
<!DOCTYPE html>
<html>

<head>
    <title></title>
</head>

<body>
    <?php
    $file = file('test.txt');
    $i = 0;
    foreach ($file as $line) {
        $i++;
        $arr = explode(';', $line);
        $ip = $arr[0];
        $output = shell_exec("ping $ip -n 1");
        $text = iconv("CP866", "utf-8", $output);
        $pos = strpos($text, "недоступен");
        // echo $pos;
        // echo $text;
        if ($pos > 0) {
            echo "<a href='http://$ip:8080' title='$ip'>Offline</a><br>";
        } elseif (strlen($text) > 300) {
            echo "<a href='http://$ip:8080' title='$ip'>Online</a><br>";
        } else {
            echo "<a href='http://$ip:8080' title='$ip'>-</a><br>";
        }
    }
    ?>
</body>

</html>

Рабочий вариант. НЕясно для чего было $v.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы