Доброго времени суток!
Есть файлик .tmp, в котором хранится лог последней записи такого плана:
Port Type Link Status Test Result Cable Length (M)
------ ---------- ------------- ------------------------- -----------------
15 100BASE-T Link Up OK 00
DES-хххх-хх:admin# show -------
Command: ---------
VID VLAN Name MAC Address Port Type Status
---- -------------------------------- ----------------- ----- ------- -------
ххх int_хх хх-хх-хх-хх-хх-хх
Мне нужно получить оттуда "Link Up OK" и "MAC Address"
Конкретно эти слова есть и отображаются
$text = $result;
$words = array("Link Up OK", "MAC Address");
foreach($words as $word) {
if(strpos($text, $word) !== false) {
echo $word ;
//break;
} else {
echo "Error";
}
}
вот только вместо "MAC Address" я хочу получить корректное значение MAC.
Пытался делать подобный бред, но так и не понял, как это сделать
$pattern = "@^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$@";
$st_strpos = "MAC";
echo "Результат поиска в файле $result: <br>";
if (strpos($result) && $st_strpos){
echo "Есть такое слово";
} else {
echo "Нет такого слова";
}
Как найти значение MAC?
Как найти значение
Можно прочитать файл в массив, и в цикле распарсить регулярным выражением. Как-то так:
$str =<<<STR
Port Type Link Status Test Result Cable Length (M)
------ ---------- ------------- ------------------------- -----------------
15 100BASE-T Link Up OK 00
DES-хххх-хх:admin# show -------
Command: ---------
VID VLAN Name MAC Address Port Type Status
---- -------------------------------- ----------------- ----- ------- -------
ххх int_хх хх-хх-хх-хх-хх-хх
STR;
$results = [];
foreach (explode(PHP_EOL, $str) as $line) {
$patt = '~\d+\h{5,}\d+[\pL-]+\h{2,}(\pL{3,}\h\pL+\h{7,}\pL+)|';
$patt .= '[\pL\d]{3}\h+[\pL\d_]{3,}\h{9,}((?:[\pL\d]{2}-){5}[\pL\d]{2})~u';
if (preg_match($patt, $line, $match)) {
$match = array_values(array_filter($match));
$results[] = preg_replace('~\h{2,}~', ' ', $match[1]);
}
}
var_dump($results);
Результат:
array (size=2)
0 => 'Link Up OK'
1 => 'хх-хх-хх-хх-хх-хх'
P.S.: Шаблон регулярного выражения за ненадобностью можно упростить.
Screencap на Android умеет отдавать RAW картинку, как я понимаю, это framebuffer с заголовкомКак правильно привести данные RAW к формату Bmp?
Одна программа, включающая хэдер с классами и его cpp с методами, генерирует данныеНеобходимо эти данные сохранять в БД