PHP bir PowerPoint dosyası metni okuyabilir miyim?

4 Cevap php

Ben PHP (tarih) powerpoint sunumu okudum, ve minimal her slayt metni ayıklamak istediğiniz (görüntü ve düzenleri daha iyi olurdu gibi daha fazla bilgi kapma, ama ben bu noktada sadece metin için razı olur.)

Google apps kendi sunum uygulaması bunu biliyoruz, bu yüzden powerpoint ikili çevirmek için bir yol var olduğunu tahmin ediyorum, ama bunu yapmak konusunda herhangi bir bilgi bulmak için görünmüyor olabilir.

Denemek için ne herhangi bir fikir?

Teşekkürler -

4 Cevap

Ben bu benim çözünürlüğü sonrası istedim.

Ne yazık ki, güvenilir, ikili verileri okumak için PHP alamadı.

Benim çözüm PowerPoint otomatize ederek iş yapan küçük bir VB6 app yazmak oldu.

Ne ben arıyordum, ama şimdi sorunu çözer.

Söyleniyor, bu noktada geçerli olabilir gibi Zend seçenek görünüyor, bu yüzden bu izleyecekler.

Teşekkürler.

Zend_Search_Lucene indeks PowerPoint 2007 dosyaları mümkün olduğu gibi sürümüne bağlı olarak, Zend Framework üzerinde bir göz atabilirsiniz. Sadece ilgili sınıf dosyasına bir göz atın, i Zend_Search_Lucene_Document_Pptx gibi bir şey olduğunu düşünüyorum.

Evet tabii ki mümkündür.

Here's a start. Ben çok iyi biçimlendirmesi / belgelenmiş olduğunu söyleyemem, ancak başlamak bir kez o kadar da zor değil. Eğer (slaytlar, metin, vb) gerek elemanları sadece odaklanarak başlayın.

Daha az ayrıntılı ve basit bir yaklaşım hex editörü. Ppt dosyasını açmak ve interesed bilgi için bak (eğer ikili veri içindeki metni görmek gerekir) ve ne çevreleyen olacaktır. Sonra bu bilgileri ayıklar ayrıştırıcı yazabilirsiniz bu bilgileri çevreleyen ne dayanmaktadır.

İşte Word belgeleri metni ayıklar ben formunu bir similar one oluşturulan örnek bir fonksiyon. Microsoft PowerPoint dosyaları ile test, ama. Ppt olarak kaydedilen OpenOfficeImpress dosyaları çözmek değil

Dosyaları pptx için. Zend Lucene bakmak isteyebilirsiniz.

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;

}