Как мне преобразовать этот рабочий код из Windows в Linux?

shiiiver

Пользователь
Регистрация
01.01.70
Сообщения
1
Реакции
0
Баллы
1
Я пытался понять это хоть убей: я задал вопрос в stackoverflow, но они не смогли помочь:

http://stackoverflow.com/questions/42967583/executing-a-linux-program-from-php


Код:
$file = '/homepublic_html/downloads/test_doc.docx';
$content = exec('/homepublic_html/doctotext/doctotext.sh \c '. $file, $output, $return);

Код (разметка): Как мне написать этот код на сервере Linux (Centos x86_64)?

Я использую это бесплатное программное обеспечение: http://silvercoders.com/en/products/doctotext/

Первый, кто получит ответ, получит 20 долларов США на свой PayPal. Я пытался:

<?php $file = 'C:\xampp\htdocs\SMF\sdsdssss.docx'; $content = exec( 'C:\xampp\htdocs\SMF\doctotext\doctotext.exe /c '. $file , $output ); var_dump( $output );
Код (разметка):
Как мне преобразовать этот рабочий код из Windows в Linux?
 

svn.77

Пользователь
Регистрация
09.07.15
Сообщения
3
Реакции
0
Баллы
1
Я не думаю, что вы можете запустить файл .EXE непосредственно в Linux.
В любом случае вам понадобится какой-нибудь другой сторонний двоичный файл.
https://www.techperiod.com/install-windows-exe-files-linux/

Я думаю, что это проблема. EXE не запускается.
Вот почему я попросил вас сначала установить двоичный файл doctotext, а затем попробовать существующий код. Вместо местоположения файла .exe укажите местоположение этого двоичного файла доктотекста в команде exec.

Вы можете нанять кого-нибудь отсюда, из стека или из фрилансера, который сможет выполнить установку и запустить тест из командной строки.
 

варабайба

Пользователь
Регистрация
02.02.14
Сообщения
2
Реакции
0
Баллы
1
Откуда мне знать? Я не знаю ни программы, ни синтаксиса - я обобщаю. Прочтите документацию или справочную страницу или попробуйте запустить программу с модификатором -help или аналогичным. Если вы используете несуществующий модификатор, обычно будут перечислены доступные модификаторы.
 

intel3000

Пользователь
Регистрация
20.09.13
Сообщения
1
Реакции
0
Баллы
1
И что именно это возвращает, в журнале ошибок php, других журналах ошибок или вообще в чем-то? Кроме того, я предполагаю, что использование -c или --c вместо \c может помочь?

Пока exec() работает на вашем сервере, запуск .sh не должен отличаться, хотя синтаксис и вывод могут немного отличаться.
 

Ursula

Пользователь
Регистрация
17.07.14
Сообщения
4
Реакции
0
Баллы
1
Привет,
Я загрузил пакет, на который вы ссылались, и в каталоге «src» есть «makefile».
Сначала вам необходимо установить доктотекст, используя это.
Разархивируйте пакет, перейдите в каталог src и выполните команды:
настроить
делать
сделать установку

Я никогда не устанавливал пакеты в Linux, но нашел эту ссылку, которая может помочь:
http://www.linuxquestions.org/questions/linux-newbie-8/help-how-to-install-a-makefile-872181/

Вы можете нанять кого-нибудь, чтобы он сделал это за вас, но убедитесь, что это настоящий, заслуживающий доверия человек, поскольку вы предоставите ему root-доступ...
Почему бы вам не связаться с вашим хостингом? Может быть, они установят это за отдельную плату?

После этого они могут просто использовать командную строку, чтобы проверить, извлекается ли текст из одного из файлов-образцов, находящихся в загруженном zip-архиве.
После этого вы сможете легко разобраться с PHP-кодом...
 

24hostbiz

Пользователь
Регистрация
29.07.14
Сообщения
3
Реакции
0
Баллы
1
Привет, не уверен, поможет ли это, но Windows и Linux используют разные окончания строк в своих файлах, что может вызвать проблемы с выполнением кода в другой среде.

Windows использует CRLF, а Linux использует LF. Проверьте в своем редакторе настройки для сохранения файлов как LF. Я использую редактор Atom для кодирования, у него есть возможность автоматического сохранения в установленный формат, я кодирую все с помощью LF, поскольку он без проблем работает в обеих системах.

Также дважды проверьте пути к файлам в коде и правильность установки стека вашего сервера в путях среды Linux.

Sidenote Я новичок, но раньше сталкивался с этими проблемами на сервере Linux, и эти изменения мне помогли.
 

edzx

Пользователь
Регистрация
01.07.15
Сообщения
3
Реакции
0
Баллы
1
Привет

К сожалению, ошибок PHP нет.

Код:
var_dump( $content ): string(0) ""
var_dump( $output ): array(0) { }
var_dump( $return ): int(126)
var_dump( $string ): string(0) ""
Код (разметка): Если я дам вам доступ по FTP, вы сможете попробовать? Я у всех спрашивал, не помогло
 

Lokybymn

Пользователь
Регистрация
28.12.14
Сообщения
3
Реакции
0
Баллы
1
Я владелец выделенного сервера, поэтому хоста, к сожалению, нет.

Все еще жду, пока кто-нибудь опробует это раньше меня.

Спасибо за вашу помощь, хотя
 

Rustam2

Пользователь
Регистрация
25.09.13
Сообщения
3
Реакции
0
Баллы
1
Я думаю, вы пытаетесь прочитать файл docx в текстовую строку. Этот код ниже работает. Он не использует программное обеспечение, которое вы используете...
Вот результат: http://www.imrobos.com/dd/1.php
Вот docx-файл: http://www.imrobos.com/dd/aa.docx

Есть ли причина, по которой вы хотите использовать стороннее программное обеспечение?

Код:
<?php
function docx2text($filename) { return readZippedXML($filename, "word/document.xml");
}
function readZippedXML($archiveFile, $dataFile) {
$zip = new ZipArchive;
if (true === $zip->open($archiveFile)) { if (($index = $zip->locateName($dataFile)) !== false) { $data = $zip->getFromIndex($index); $zip->close(); $xml = new DOMDocument(); $xml->loadXML($data, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING); return strip_tags($xml->saveXML()); } $zip->close();
}
return "";
}
echo docx2text( "aa.docx"); // Save this contents to file
?>
PHP:
 

maks.ltd

Пользователь
Регистрация
25.08.14
Сообщения
4
Реакции
0
Баллы
1
Джит: «Я не думаю, что вы можете запустить файл .EXE непосредственно в Linux». имеет только одну ошибку - это не "не думаю", а "нельзя". Вам придется найти программу для Linux, которая делает то, что
doctotext.exe, или просто напишите функцию этой программы внутри вашей программы PHP (конечно, на PHP). PHP может читать XML-файл, так что это довольно тривиально. (Я точно знаю, насколько это тривиально — я это написал. К сожалению, каждый раз, когда я это делал, он был проприетарным, поэтому я не могу дать вам код, но в simplexml_load_string($XMLData) должно быть достаточно легко разобраться. )
 

pumada

Пользователь
Регистрация
01.01.70
Сообщения
2
Реакции
0
Баллы
1
Адрес
Россия
Причина в том, что мне нужно полное решение для всех типов документов, а не только для docx.

Я нашел этот пакет на GitHub (doctotext). Я хотел бы установить его на свой выделенный сервер под управлением Centos (x86_64), но не знаю, как это сделать. Может ли кто-нибудь дать инструкции о том, как я могу это сделать. Инструкции, к сожалению, нет
 
Сверху Снизу