PHP可以从PowerPoint文件中读取文本吗?

PHP可以从PowerPoint文件中读取文本吗?,php,powerpoint,Php,Powerpoint,我想让PHP阅读(上传的)powerpoint演示文稿,并从每张幻灯片中提取最少的文本(抓取更多的信息,如图像和布局会更好,但此时我只接受文本) 我知道GoogleApps在它的演示应用程序中实现了这一点,所以我猜有一些方法可以翻译powerpoint二进制文件,但我似乎找不到任何关于如何实现这一点的信息 有什么想法可以试试吗 谢谢-是的,当然有可能 [这是一个开始。](我不会说它有很好的文档/格式,但一旦你开始,它并不是那么难。开始时只关注你需要的元素(幻灯片、文本等) 一种不太详细、更简单的

我想让PHP阅读(上传的)powerpoint演示文稿,并从每张幻灯片中提取最少的文本(抓取更多的信息,如图像和布局会更好,但此时我只接受文本)

我知道GoogleApps在它的演示应用程序中实现了这一点,所以我猜有一些方法可以翻译powerpoint二进制文件,但我似乎找不到任何关于如何实现这一点的信息

有什么想法可以试试吗


谢谢-

是的,当然有可能

[这是一个开始。](我不会说它有很好的文档/格式,但一旦你开始,它并不是那么难。开始时只关注你需要的元素(幻灯片、文本等)


一种不太详细、更简单的方法是在hex编辑器中打开.ppt文件并查找您感兴趣的信息(您应该能够看到二进制数据中的文本)然后根据这些信息的内容,你可以编写一个解析器来提取这些信息。

根据版本的不同,你可以查看Zend框架,因为Zend_Search_Lucene能够为PowerPoint 2007文件编制索引。只需查看相应的类文件,我认为它类似于
Z结束\u搜索\u Lucene\u文档\u Pptx

我想把我的解决方案发布到这里

不幸的是,我无法让PHP可靠地读取二进制数据

我的解决方案是编写一个小型vb6应用程序,通过自动化PowerPoint来完成这项工作

不是我想要的,但是,现在解决了这个问题

话虽如此,Zend选项在某个时候看起来是可行的,所以我会关注它


谢谢。

这是我创建的一个示例函数,用于从Word文档中提取文本。我使用Microsoft PowerPoint文件对其进行了测试,但它无法解码保存为.ppt的OpenOfficeImpress文件

对于.pptx文件,您可能需要查看Zend Lucene

    function parsePPT($filename) {
    // This approach uses detection of the string "chr(0f).Hex_value.chr(0x00).chr(0x00).chr(0x00)" to find text strings, which are then terminated by another NUL chr(0x00). [1] Get text between delimiters [2] 
    $fileHandle = fopen($filename, "r");
    $line = @fread($fileHandle, filesize($filename));
    $lines = explode(chr(0x0f),$line);
    $outtext = '';

    foreach($lines as $thisline) {
        if (strpos($thisline, chr(0x00).chr(0x00).chr(0x00)) == 1) {
            $text_line = substr($thisline, 4);
            $end_pos   = strpos($text_line, chr(0x00));
            $text_line = substr($text_line, 0, $end_pos);
            $text_line = preg_replace("/[^a-zA-Z0-9\s\,\.\-\n\r\t@\/\_\(\)]/","",$text_line);
            if (strlen($text_line) > 1) {
                $outtext.= substr($text_line, 0, $end_pos)."\n";
            }
        }
    }
    return $outtext;
}