HTML — PHP и с помощью awk?

Во-первых, возможно ли запустить awk в PHP? Я пытаюсь напечатать второй столбец вывода, который хранится в переменной. Если это невозможно,

$f=foo.txt
$o=file($f);
$len=count($o);
$rnum= rand(2,$len);
echo $o[$rnum];
exec(awk -v '{ print $2}', $output); // This obviously isn't right, but is there a way to make this logic work?
echo $output;

Примером одной строки вывода из $ o [$ rnum] будет: 12 20 собака, в которой я хотел бы получить только «собаку» и сохранить ее в переменной

1

Решение

Ты ищешь explode()

Если вам действительно нужно выполнить команду в оболочке, вы можете использовать system()

http://php.net/manual/en/function.explode.php

1

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

Предыдущий респондент прав насчет взрыва. Вот пример файла данных, который я разработал:

мой foo.txt:

12  20  dog
13  21  cat
14  22  fish
15  23  bear
16  24  lion

и вот скрипт PHP, который делает то, что вы хотите:

<?php
$f="./foo.txt";
$o = file($f);
$len = count($o);
$rnum = mt_rand(0,$len-1);
echo "Random record: ",$o[$rnum],"<br>\n";
$data = trim($o[$rnum]);
list($n,$m,$animal) = explode("\t",$data);
echo "Just the animal: ",$animal;

Вам нужны кавычки вокруг имени файла с PHP между прочим. Кроме того, mt_rand должен давать более случайный результат. Мой файл данных ограничен вкладками.

Надеюсь это поможет.

постскриптум Я бы не рекомендовал использовать такие звонки, как система или же Exec b / c есть риски безопасности, связанные с этими двумя функциями. Обычно в PHP есть способ сделать что-то, не прибегая к системному вызову.

1

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