podust
@podust

Как правильно передать в PHP текст через stdin с помощью popen()?

Пытаюсь удалить или изменить метаданные PDF (автор, тайтл и т.д.). Делаю это через утилиту pdftk, и все прекрасно получается. Но заминка происходит в PHP. Я хочу реализовать такой вот простой алгоритм, не прибегая к созданию файлов на диске:

1. Получаю метаданные PDF и складываю их в массив:

exec("pdftk $pdffile dump_data output", $result);

2. Меняю метаданные нужным мне способом в массиве.

3. Пытаюсь подать эти метаданные под видом текстового файла, в том же виде, в каком принял их:

$sh = popen("pdftk $pdffile update_info - output $resultpdf", "w");
fwrite( $sh, implode(PHP_EOL, $result) );
pclose($sh);


Но метод не срабатывает, метаданные в $resultpdf остаются теми же, что и раньше. Хотя в терминале (с применением файлов) подобная команда работает на ура. Предвосхищая вопрос — да, pdftk поддерживает ввод через stdin.
  • Вопрос задан
  • 2318 просмотров
Пригласить эксперта
Ответы на вопрос 1
saintbyte
@saintbyte
Django developer
Вам не нужен php - вам нужен bash
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы