Angelo-ti 3 Denunciar post Postado Agosto 15, 2011 Daew galera estou com problema, fiz um aplicaçao em PHP no Windows (Easy PHP) mais quando coloquei no servidor (Linux) nao esta funcionando segue o codigo <?PHP//Pra começar, instanciamos o objeto COM passando 'word.application' como parametro para 'abrir o word' $word = new COM("word.application") or die ("Erro!!"); //Em seguida, atribuímos à variável $file, o nome do documento que será aberto $file = "modelo.doc"; //Aqui, abrimos o documento em questão $word->Documents->Open(realpath($file)); // Agora, extraímos seu conteúdo para a variável $content //convertento o mesmo para string $content = (string) $word->ActiveDocument->Content; //Convertemos as quebras de linha para html $txt = nl2br($content); //Pra visualizar o conteúdo, basta imprimir a variável echo $content; //Agora, fechamos o documento... $word->ActiveDocument->Close(false); //"Saímos do word" (ou quase, hahahaha) $word->Quit(); //Os passos seguintes, são recomendados pra //evitar vazamento de memória $word = null; unset($word); ?> No Windows roda legal, no linux fica tudo banco, como eu faço para fazer isso no linux, PS: Objetivo do codigo, e copiar o conteudo do arquivo, caso exista outra maneira. Compartilhar este post Link para o post Compartilhar em outros sites
Raphael C. 0 Denunciar post Postado Agosto 15, 2011 word.application é um recurso nativo do windows, logo não vai funcionar no Linux. O que tu pode fazer (o que eu não tenho certeza que vai dar certo) é criar uma DLL compilada pro Linux, ou procurar alguma classe que trabalha com arquivos do Word em algum site de classes do PHP, quase sempre tem. Compartilhar este post Link para o post Compartilhar em outros sites
Angelo-ti 3 Denunciar post Postado Agosto 15, 2011 nao tem como eu abrir esse arquivo, de outra maneira? preciso do conteudo dele nao daria para usar o FOPEN? Compartilhar este post Link para o post Compartilhar em outros sites
Raphael C. 0 Denunciar post Postado Agosto 15, 2011 Descobri uma forma aqui. No word 2008, os documentos são arquivos .zip, e o conteudo fica no document.xml; Tu pode fazer o php abrir a zip, abrir o document.xml e ler o conteudo (com uma foreach). Só que não é uma XML "simples". ~~~~~~~~ Sei que não é exatamente incentivado a postar códigos prontos, mas é por uma boa causa :lol: <?php $doc = new DOMDocument(); $doc->load( 'zip://' . dirname(__FILE__) . '/Notebook.docx#word/document.xml' ); $books = $doc->getElementsByTagName( "t" ); foreach ( $books as $book ) { echo $book->nodeValue . PHP_EOL; } ?> Lembrando que vai funcionar no Word 2007 + Compartilhar este post Link para o post Compartilhar em outros sites
Angelo-ti 3 Denunciar post Postado Agosto 15, 2011 vlw, vou tentar usar, achei essa funcao da uma olhada function parseWord($userdoc) { $filehandle = fopen($userdoc, "r"); $line = @fread($filehandle, $filesize($userdoc)); $lines = explode(chr(0x00),$line); $outtext =""; foreach($lines as $thisline) { $pos = strpos($thisline, chr(0x00)); if (($pos !=FALSE) || (strlen($thisline)==0)) { }else{$outtext = $thisline." "; } } $outtext = preg_replace("/[^a-zA-Z0-9\s\,\.\-\n\r\t@\/\_\(\)]/"," ",$outtext); return $outtext; } $userdoc = "modelo.doc"; echo parseWord($userdoc); echo $text; Compartilhar este post Link para o post Compartilhar em outros sites
Angelo-ti 3 Denunciar post Postado Agosto 16, 2011 funcionou no windows, no linux a tela fico branca, tenho que configurar algo? Compartilhar este post Link para o post Compartilhar em outros sites
Angelo-ti 3 Denunciar post Postado Agosto 17, 2011 Aew galera resolvi meu problema, da seguinte forma Existe um aplicativo para linux CATDOC (para instalar "yum install catdoc") que converte com perfeicao o .DOC para txt. ai fica facil e so usar o comando Exibir $documento = 'caminho do arquivo'; $texto = shell_exec("catdoc $documento"); echo "<pre>$texto</pre>"; OU $texto = shell_exec("catdoc arquivo.co"); echo "<pre>$texto</pre>"; CONVERTER catdoc arquiv.doc > novoarquivo.txt ate mais.... Compartilhar este post Link para o post Compartilhar em outros sites