Разбор txt файла в строках и столбцах в переполнении стека

Я довольно новичок в PHP и немного поработал над веб-дизайном, но пытаюсь разобрать текстовый файл на строки и столбцы, и я просто не могу заставить его вернуть правильный формат.
Вот мой php файл

<?php
$txt_file    = file_get_contents('/var/www/html/config/Configfiles/showpeers/output.txt');
$txt_file = str_replace('/\s+/', '_', $txt_file);
$rows        = explode("\n", $txt_file);
//array_shift($rows);

foreach($rows as $row => $data)
{

//get row data
$row_data = explode('_', $data);

$info[$row]['Name/username']           = $row_data[0];
$info[$row]['Host']         = $row_data[1];
$info[$row]['Dyn']  = $row_data[2];
$info[$row]['Forceport']       = $row_data[3];
$info[$row]['Comedia']       = $row_data[4];
$info[$row]['ACL']       = $row_data[4];
$info[$row]['Port']       = $row_data[4];
$info[$row]['Status']       = $row_data[7];
$info[$row]['Description']       = $row_data[8];

//display data
echo ' PEER: ' . $info[$row]['Name/username'] . '<br />';
echo ' Host: ' . $info[$row]['Host'] . '<br />';
echo ' Dyn: ' . $info[$row]['Dyn'] . '<br />';
echo ' Forceport: ' . $info[$row]['Forceport'] . '<br />';
echo ' Comedia: ' . $info[$row]['Comedia'] . '<br />';
echo ' ACL: ' . $info[$row]['ACL'] . '<br />';
echo ' Port: ' . $info[$row]['Port'] . '<br />';
echo ' Status: ' . $info[$row]['Status'] . '<br />';
echo ' Description: ' . $info[$row]['Description'] . '<br />';

echo '<br />';
}
?>

Файл TXT

Имя / имя пользователя Host Dyn Forcerport Comedia ACL Статус порта Описание
1001 (не указано) D Авто (Нет) Нет 0 Не отслеживается
1002 (не указано) D Авто (Нет) Нет 0 Не отслеживается
1003 (не указано) D Авто (Нет) Нет 0 Не отслеживается
1401/1401 192.168.21.94 D Авто (нет) № 58790 ОК (50 мс)
1402 (не указано) D Авто (Нет) Нет 0 Не отслеживается
1403 (не указано) D Авто (Нет) Нет 0 Не отслеживается
1404 (не указано) D Авто (Нет) Нет 0 Не отслеживается
1405 (не указано) D Авто (Нет) Нет 0 Не отслеживается
1406 (не указано) D Да Да 0 Без контроля
1407 (не указано) D Да Да 0 Без контроля
1408 (не указано) D Да Да 0 Без контроля
1409 (не указано) D Авто (Нет) Нет 0 Не отслеживается
1410 (не указано) D Авто (Нет) Нет 0 Не отслеживается
1411 (Не указано) D Авто (Нет) Нет 0 Не отслеживается
1412 (не указано) D Авто (Нет) Нет 0 Не отслеживается
1413 (не указано) D Авто (Нет) Нет 0 Не отслеживается
1414 (не указано) D Авто (Нет) Нет 0 Не отслеживается
1415 (не указано) D Авто (Нет) Нет 0 Не отслеживается
1420 (не указано) D Авто (Нет) Нет 0 Не отслеживается
2801 (Не указано) D Авто (Нет) Нет 0 Не отслеживается
2803 (не указано) D Авто (Нет) Нет 0 Не отслеживается
2805 (Не указано) D Авто (Нет) Нет 0 Не отслеживается
MCD_Demo 192.168.22.37 Да Да 5060 ОК (19 мс)
NCP 192.168.21.74 Да Да 5060 Недоступен
STG01 192.168.27.50 Да Да 5060 Недоступен
switchvox / switchvox (не указано) D Да Да 0 НЕИЗВЕСТНО
26 sip peers [Мониторинг: 2 онлайн, 3 оффлайн Без мониторинга: 0 онлайн, 21 оффлайн]

Мой вывод выглядит как на картинке ниже. Я пытаюсь получить строки для заполнения пробелов, но это не работает должным образом.

введите описание изображения здесь

Спасибо

-1

Решение

Спасибо, ребята, я смог разобраться. Ниже новый PHP

<?php
$txt_file    =
file_get_contents('/var/www/html/config/Configfiles/showpeers/output.txt');
$txt_file = preg_replace('/\h+/', ' ', $txt_file);
$rows        = explode("\n", $txt_file);
array_shift($rows);
array_pop($rows);
array_pop($rows);

foreach($rows as $row => $data)
{
//get row data
$row_data = explode(' ', $data);

$info[$row]['Name/username']           = $row_data[0];
$info[$row]['Host']         = $row_data[1];
$info[$row]['Dyn']  = $row_data[2];
$info[$row]['Forceport']       = $row_data[3];
$info[$row]['Comedia']       = $row_data[4];
$info[$row]['ACL']       = $row_data[4];
$info[$row]['Port']       = $row_data[4];
$info[$row]['Status']       = $row_data[7];
$info[$row]['Description']       = $row_data[8];

//display data
echo ' PEER: ' . $info[$row]['Name/username'] . '<br />';
echo ' Host: ' . $info[$row]['Host'] . '<br />';
//echo ' Dyn: ' . $info[$row]['Dyn'] . '<br />';
//echo ' Forceport: ' . $info[$row]['Forceport'] . '<br />';
//echo ' Comedia: ' . $info[$row]['Comedia'] . '<br />';
//echo ' ACL: ' . $info[$row]['ACL'] . '<br />';
//echo ' Port: ' . $info[$row]['Port'] . '<br />';
echo ' Status: ' . $info[$row]['Status'] . '<br />';
//echo ' Description: ' . $info[$row]['Description'] . '<br />';

echo '<br />';

}
?>

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector