Как выделить строки в файле для скачивания? - PullRequest
0 голосов
/ 30 мая 2019

У меня есть текстовый файл «output.txt», который является выводом команды оболочки.Я хочу выделить в этом файле некоторые слова, взятые как $ _GET ['word'], а затем разрешить их загрузку с помощью href.

Я видел несколько вопросов, но ни один из них, похоже, не работает в этом случае.

  1. выделение нескольких ключевых слов из заданной строки
  2. выделение слова в строке, если оно содержит ключевое слово

Код:

$cmd = shell_exec("/usr/local/bin/clustalw2 -infile=input.txt -tree -type=protein -case=upper &");
$file = 'output.txt';
$content = explode("\n",file_get_contents("output.txt"));
$keyword = $_GET['word'];
$content = str_replace($keyword,'<span style="color:red">'.$keyword.'</span>',$content);
$file = file_put_contents($file, $content);
echo "<a href='http://some.thing.com/folder/output.txt'>Download Result file</a>";

Это не дает никакой ошибки и не выделяет текст.

1 Ответ

0 голосов
/ 30 мая 2019

Я подозреваю, что проблема с открытием исходного файла. Следующее сработало для меня.

Я создал /home/input.txt:

this is a test
that may
or may not work.

Затем побежал:

$cmd = shell_exec(" cp /home/input.txt output.txt");
$file = 'output.txt';
$content = explode("\n",file_get_contents("output.txt"));
$keyword = "may";
$content = str_replace($keyword,'<span style="color:red">'.$keyword.'</span>',$content);
$file = file_put_contents($file, implode("\n", $content));
echo "<a href='http://some.thing.com/folder/output.txt'>Download Result file</a>";

И output.txt теперь:

this is a test
that <span style="color:red">may</span>
or <span style="color:red">may</span> not work.
...