rafinos Δημοσ. 16 Οκτωβρίου 2014 Δημοσ. 16 Οκτωβρίου 2014 Γεια σας παιδιά! Σίγουρα υπάρχουν πολλές κλάσεις που βοηθούν στην επικοινωνία δεδομένων μέσω php και word (doc, docx). Αυτό που θέλω πιο συγκεκριμένα (αρχικά) είναι αν γίνεται να εμφανίσω τα δεδομένα ενός αρχείου word ακριβώς με τον τρόπο που είναι δομημένα (παραγράφους κτλ), στον browser και να τα αποθηκεύσω σε ένα array. Οπότε όποιος έχει χρησιμοποιήσει κάποια κλάση για κάτι τέτοιο ας μου πει αν θέλει
rafinos Δημοσ. 31 Οκτωβρίου 2014 Μέλος Δημοσ. 31 Οκτωβρίου 2014 Κατάφερα να πάρω το κείμενο από docx (μορφοποίηση δεν παίζει με τίποτα) με τον παρακάτω τρόπο: <?php header('Content-Type: text/html; charset=utf-8'); function kv_read_word($input_file){ $kv_strip_texts = ''; $kv_texts = ''; if(!$input_file || !file_exists($input_file)) return false; $zip = zip_open($input_file); if (!$zip || is_numeric($zip)) return false; while ($zip_entry = zip_read($zip)) { if (zip_entry_open($zip, $zip_entry) == FALSE) continue; if (zip_entry_name($zip_entry) != "word/document.xml") continue; $kv_texts .= zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)); zip_entry_close($zip_entry); } zip_close($zip); $kv_texts = str_replace('</w:r></w:p></w:tc><w:tc>', " ", $kv_texts); $kv_texts = str_replace('</w:r></w:p>', "\r\n", $kv_texts); $kv_strip_texts = strip_tags($kv_texts); return $kv_strip_texts; } $kv_texts = kv_read_word('a.docx'); if($kv_texts !== false) { echo nl2br($kv_texts); } else { echo "Can't Read that file."; } ?> Επίσης βρήκα και αυτό τον κώδικα για .doc αλλά δε δουλεύει με ελληνικά και στα αγγλικά σε κάποια σημεία βγάζει περίεργος χαρακτήρες (στα ελληνικά βγάζει ερωτηματικά). <?php header('Content-Type: text/html; charset=utf-8'); function parseWord($userDoc) { $fileHandle = fopen($userDoc, "r"); $word_text = @fread($fileHandle, filesize($userDoc)); $line = ""; $tam = filesize($userDoc); $nulls = 0; $characters = 0; for($i=1536; $i<$tam; $i++) { $line .= $word_text[$i]; if( $word_text[$i] == 0) { $nulls++; } else { $nulls=0; $characters++; } if( $nulls>1996) { break; } } //echo $characters; $lines = explode(chr(0x0D),$line); //$outtext = "<pre>"; $outtext = ""; foreach($lines as $thisline) { $tam = strlen($thisline); if( !$tam ) { continue; } $new_line = ""; for($i=0; $i<$tam; $i++) { $onechar = $thisline[$i]; if( $onechar > chr(240) ) { continue; } if( $onechar >= chr(0x20) ) { $characters++; $new_line .= $onechar; } if( $onechar == chr(0x14) ) { $new_line .= "</a>"; } if( $onechar == chr(0x07) ) { $new_line .= "\t"; if( isset($thisline[$i+1]) ) { if( $thisline[$i+1] == chr(0x07) ) { $new_line .= "\n"; } } } } $new_line = str_replace("HYPERLINK" ,"<a href=",$new_line); $new_line = str_replace("\o" ,">",$new_line); $new_line .= "\n"; $new_line = str_replace("INCLUDEPICTURE" ,"<br><img src=",$new_line); $new_line = str_replace("\*" ,"><br>",$new_line); $new_line = str_replace("MERGEFORMATINET" ,"",$new_line); $outtext .= nl2br($new_line); } return $outtext; } $userDoc = "Globalization.doc"; $userDoc = "Globalization.doc"; $text = parseWord($userDoc); echo $text; ?>
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα