shell_exec() не выполняет команду pdftotext

Я установил необходимую библиотеку, и она работает в терминале, но не в моем файле php. Мой код:

$mypdf = shell_exec('/usr/local/bin/pdftotext test.pdf test.txt');
echo $mypdf;

Если я выполняю эту команду /usr/local/bin/pdftotext test.pdf test.txt в терминале, она работает нормально.

Я также пишу свой код такого типа:

shell_exec('/usr/local/bin/pdftotext test.pdf test.txt');
$mypdf = file_get_contents("test.txt");
echo $mypdf;

В журнале ошибок сообщение такое:

/usr/local/bin/pdftotext: /opt/lampp/lib/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/i386-linux-gnu/libstdc++.so.6)

person Community    schedule 01.09.2012    source источник
comment
Не могли бы вы уточнить, что вы подразумеваете под неработающим?   -  person Infiltrator    schedule 01.09.2012
comment
Эта команда создает файл test.txt из test.pdf при запуске из терминала.   -  person    schedule 01.09.2012
comment
И он не создает этот файл, если запустить его внутри файла php? Смотрите мой ответ ниже.   -  person Infiltrator    schedule 01.09.2012
comment
Не могли бы вы посоветовать, откуда вы установили библиотеку pdftotext?\   -  person user2727195    schedule 21.11.2014


Ответы (3)


Я думаю, у вас проблемы с зависимостью. Проверьте свой error.log. Узнайте, какой файл отсутствует, и добавьте его в переменную среды пути вашей установки php.

person rekire    schedule 01.09.2012
comment
только '/usr/local/bin/pdftotext: /opt/lampp/lib/libgcc_s.so.1: версия `GCC_4.2.0' не найдена (требуется /usr/lib/i386-linux-gnu/libstdc++.so. 6)' ошибка в error_log - person ; 01.09.2012

Я предполагаю, что вы ожидаете, что $mypdf будет содержать документ PDF вместо возвращаемого значения выполненной команды. Если вы пытаетесь распечатать «test.txt», вам нужно загрузить его и распечатать.

person Infiltrator    schedule 01.09.2012
comment
Или сделайте что-нибудь вроде $mypdf = shell_exec('/usr/local/bin/pdftotext.exe test.pdf /dev/stdout'); - person JohnB; 01.09.2012
comment
моя команда должна создать файл test.txt в текущем каталоге, но он не создается. Я проверяю эту проблему, связанную с моим webdeveloper.com/forum /archive/index.php/t-254155.html но мне не помогло - person ; 01.09.2012
comment
используйте мой код так же shell_exec('/usr/local/bin/pdftotext.exe test.pdf test.txt'); $mypdf = file_get_contents("test.txt"); echo $mypdf; - person ; 01.09.2012
comment
@SumitMadan Вы уверены, что рабочий каталог исполняемого php такой же, как и при запуске вручную? Возможно, он не сможет найти «test.pdf» в рабочем каталоге. - person Infiltrator; 01.09.2012
comment
я выполнил эту команду shell_exec('mkdir test');, и она создает каталог в текущем каталоге. - person ; 01.09.2012

Проблема была: /usr/local/bin/pdftotext: /opt/lampp/lib/libgcc_s.so.1: version 'GCC_4.2.0' not found (required by /usr/lib/i386-linux-gnu/libstdc++.so.6)

И решение состояло в том, чтобы переименовать /opt/lampp/lib/libgcc_s.so.1 в libgcc_s.so.1.bak и решить мою проблему. Но путаница в том, в чем была проблема: P

person Community    schedule 01.09.2012