2008-09-18 24 views
5

Estoy tratando de leer un archivo .doc en una base de datos para que pueda indexar sus contenidos. ¿Hay alguna manera fácil para PHP en Linux para leer archivos .doc? En su defecto, ¿es posible convertir archivos .doc a rtf, pdf u otro formato 'abierto' que sea fácil de leer?Obtener PHP para leer archivos .doc en Linux

Nota, no estoy interesado en archivos .docx.

Respuesta

3

Parece haber un library for accessing Word documents pero no estoy seguro de cómo acceder desde PHP. Creo que la mejor solución sería llamar a su wv command desde PHP.

+0

Esto parece ideal. Necesito probarlo en algunos documentos, pero hasta ahora la función wvText parece hacer lo que necesito. – Conor

1

Puede usar antiword o AbiWord para extraer el texto y alimentarlo a su indexador de texto completo favorito. AbiWord es probablemente más eficaz para sus propósitos, ya que se puede convertir en RTF, PDF y otros formatos (sí, es un procesador de textos GUI, pero también es compatible con el uso de la línea de comandos).

0

No es PHP, pero hay una utilidad doc2rtf que puede usar. Desde allí, puede simplemente abrir el archivo RTF como un documento de texto, escribir algunas rutinas de reemplazo de cadenas para eliminar los códigos de formato RTF y tener un globo de texto adecuado para indexar.

O bien, puede obtener OpenOffice y abrir los documentos de MS Word y simplemente Archivo> Guardar como> RTF.

0

Los archivos DOC se almacenan en formato binario y no ha habido clases escritas puramente php al tratarlos.

Los archivos RTF son mucho más fáciles de analizar, siendo principalmente texto, puede abrirlos con fopen y leer los contenidos.

Sugeriría utilizar RTF si puede, ya que realmente todavía no hay una solución de sonido para archivos DOC.

7

Conor, sugiero que mire las macros de la interfaz de línea de comando de OpenOffice. Puede convertir muchos formatos de archivo a muchos otros. Entonces puede elegir algo mucho más analizable que MS doc.

Por ejemplo, para convertir a PDF, una línea de comandos es:

/usr/lib/ooo-2.0/program/soffice.bin -norestore -nofirststart -nologo -headless -invisible "macro:///Standard.Module1.SaveAsPDF(demo.doc)" 
+0

hey, ese es un buen consejo: ¿tiene un enlace a una referencia para otras macros como esa? – nickf

+0

Pruebe esto: http://www.tinybutstrong.com/tbsooo.php –

2

phpLiveDocx es un componente Zend Framework y puede leer y escribir archivos DOC y RTF en PHP en Linux, Windows y Mac. Además, puede usarlo para generar archivos PDF e incluso combinar datos de PHP en archivos de plantilla creados con MS Word u Open Office.

Ver el sitio web del proyecto en:

http://www.phplivedocx.org

1

encontré un paquete unoconv en Ubuntu. Hace la conversión entre todos los formatos compatibles con OpenOffice. Debería poder usar exec en php para ejecutar esta utilidad.

0

Después de varios días de búsqueda, aquí está mi mejor solución: http://wvware.sourceforge.net/

Instalar paquete

sudo apt-get install wv 

utilizarlo en PHP:

$output = str_replace('.doc', '.txt', $filename); 
shell_exec('/usr/bin/wvText ' . $filename . ' ' . $output); 
$text = file_get_contents($output); 
# Convert to UTF-8 if needed 
if(!mb_detect_encoding($text, 'UTF-8', true)) 
{ 
    $text = utf8_encode($text); 
} 
unlink($output); 
Cuestiones relacionadas