Есть ли в PHP эквивалентная функция для unix cut -f?

У меня есть длинная строка значений, разделенных вкладками, и я хочу вырезать данные, как если бы использовался unix cut -f. Если я использую команду cut -f5, она обрезает все мои данные в один столбец значения, которое находится на 5-й позиции. Есть ли функция PHP, которая может сделать то же самое?

Ниже приведен пример необработанного файла с каждым словом в строке, разделенным вкладкой

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

Результат был бы следующим, если бы я запустил команду cut -f2:

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

0

Решение

Я думаю, что ответ на самом деле «нет», насколько я знаю. Но вы можете объединить несколько функций PHP для достижения того же результата.

Ты можешь использовать file читать строки из файла в массив

$rows = file($path_to_your_file);

Затем преобразуйте этот массив строк в многомерный массив

$rows = array_map(function($row){
return str_getcsv($row, "\t");
}, $rows);

Затем получите нужный столбец из этого массива.

$column_5 = array_column($rows, 4);

Не так кратко, как cut -f5, но PHP редко для таких вещей.

Кстати, если вам все равно, что ваша PHP-программа будет работать только на системах с Unix Cut, вы можете просто использовать Cut -f в shell_exec,

1

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

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

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