Как я могу очистить текст документа MS Word на сервере Linux? - PullRequest
2 голосов
/ 24 ноября 2010

Меня попросили создать сайт, на котором некоторые пользователи могут загружать документы Microsoft Word, а затем другие могут искать загруженные документы, содержащие определенные ключевые слова.Сайт будет находиться на сервере Linux с PHP и MySQL.В настоящее время я пытаюсь выяснить, можно ли и как вычеркнуть этот текст из документов.Если кто-нибудь может предложить хороший способ сделать это, это будет высоко ценится.

Ответы [ 2 ]

4 голосов
/ 24 ноября 2010

Соскоб текста с нового формата docx тривиален.Сам файл представляет собой просто zip-файл, и если вы загляните внутрь него, вы найдете кучу xml-файлов.Текст содержится в файле word / document.xml в этом zip-файле, и весь введенный пользователем текст будет отображаться втеги.Если вы извлекаете весь текст, который появляется втеги, вы будете очищать документ.

2 голосов
/ 24 ноября 2010

Вот хороший пример использования catdoc :

function catdoc_string($str)
{
    // requires catdoc

    // write to temp file
    $tmpfname = tempnam ('/tmp','doc');
    $handle = fopen($tmpfname,'w');
    fwrite($handle,$a);
    fclose($handle);

    // run catdoc
    $ret = shell_exec('catdoc -ab '.escapeshellarg($tmpfname) .' 2>&1');

    // remove temp file
    unlink($tmpfname);

    if (preg_match('/^sh: line 1: catdoc/i',$ret)) {
        return false;
    }

    return trim($ret);
}

function catdoc_file($fname)
{
    // requires catdoc

    // run catdoc
    $ret = shell_exec('catdoc -ab '.escapeshellarg($fname) .' 2>&1');

    if (preg_match('/^sh: line 1: catdoc/i',$ret)) {
        return false;
    }

    return trim($ret);
}

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...