Я столкнулся с проблемой форматирования строки при попытке получить только имена настроенных в данный момент сетевых интерфейсов на компьютере с Linux.
1. <?php
2. $temp = shell_exec("/sbin/ifconfig | cut -b 1-10");
3. echo $temp; //Outputs: eth0 lo
4. $arr = explode(" ",$temp);
5. echo "First Location:".$arr[0]; //Outputs: eth0
6. echo "Second Location:".$arr[1]; //Outputs:
7. echo count($a); //Outputs: 165
8. ?>
Как я могу получить $ arr размера = 2, чтобы
echo $ arr [0]; // выдает 'eth0'
echo $ arr [1]; // дает 'lo'
Большое спасибо
Обновление:
Я думаю, что следующая команда сделает магию для меня
ifconfig | grep -o -e "[a-z][a-z]*[0-9]*[ ]*Link" | perl -pe "s|^([a-z]*[0-9]*)[ ]*Link|\1|"
но я делаю что-то не так, выполняя его из php-файла, потому что браузер ничего не показывает.
<?php
$temp = shell_exec("ifconfig | grep -o -e \"[a-z][a-z]*[0-9]*[ ]*Link\" | perl -pe \"s|^([a-z]*[0-9]*)[ ]*Link|\\1|\"");
echo $temp;
?>