Modifica di un .doc in PHP
Domanda
Sto cercando di sostituire le stringhe in un documento di Word leggendo il file in una variabile $content
e quindi usando str_ireplace () per cambiare la stringa.Posso leggere il contenuto dal file ma Str_ireplace () non sembra essere in grado di sostituire la stringa.Ho pensato che sarebbe perché la stringa è "cassaforte binaria" secondo la documentazione PHP.Scusa, sono un principiante con la manipolazione dei file PHP, quindi tutto questo è abbastanza nuovo per me.
Questo è quello che ho scritto.
copy('jack.doc' , 'newFile.doc');
$handle = fopen('newFile.doc','rb');
$content = '';
while (!feof($handle))
{
$content .= fread($handle, 1);
}
fclose($handle);
$handle = fopen('newFile.doc','wb');
$content = str_ireplace('USING_ICT_BOX', 'YOUR ICT CONTENT', $content);
fwrite($handle, $content);
fclose($handle);
.
Quando scarico il nuovo file, si apre come dovrebbe in ms word ma mostra la vecchia stringa e non quella che dovrebbe essere sostituita.
Posso risolvere questo problema?C'è uno strumento migliore che posso usare per sostituire le stringhe in MS Word Thourgh Php?
Soluzione 4
Vado a optare per phpword www.phpword.codeplex.com come credo che gli insegnanti riceverà office 2007 il prossimo anno e anche io cercherò di trovare un modo per convertire tra .docx e .doc tramite PHP per supportareloro nel frattempo.
Altri suggerimenti
Ho lo stesso requisito per Modifica .doc o .docx file usando PHP e ho trovato la soluzione per questo.
E ho scritto post su di esso :: http://www.onlinecode.org / update-docx-file-using-php /
.copy('jack.doc' , 'newFile.doc');
$full_path = 'newFile.doc';
if($zip_val->open($full_path) == true)
{
// In the Open XML Wordprocessing format content is stored.
// In the document.xml file located in the word directory.
$key_file_name = 'word/document.xml';
$message = $zip_val->getFromName($key_file_name);
$timestamp = date('d-M-Y H:i:s');
// this data Replace the placeholders with actual values
$message = str_replace("client_full_name", "onlinecode org", $message);
$message = str_replace("client_email_address", "ingo@onlinecode.org", $message);
$message = str_replace("date_today", $timestamp, $message);
$message = str_replace("client_website", "www.onlinecode.org", $message);
$message = str_replace("client_mobile_number", "+1999999999", $message);
//Replace the content with the new content created above.
$zip_val->addFromString($key_file_name, $message);
$zip_val->close();
}
Forse questo ti indicherebbe alla giusta direzione: http://davidwalsh.name/Leggi-PDF-DOC-File-PHP
Soluzioni che ho trovato finora (non testato però):
Doctor - Lavori per doc, gratis, ma non direttamente utilizzabile
phpwordlib - Lavori per doc, non libero
phpdocx - Solo DOCX, ha bisogno di zend.
Se è possibile raggiungere un servizio Web, guardare docmosis servizi cloud poiché può caricare un file doc conI tuoi dati e ti restituiscono un DOC / PDF / altro.È possibile postare https al servizio per effettuare la richiesta così è piuttosto semplice da PHP.
Ci sono molti modi per gestire il file di documenti Word su Linux
- .
-
antiword
- non molto efficace come converti in testo normale. -
pyODconvert
-
open-office
oliboffice
- tramite UNO - Utilità
unoconv
- È necessario installare l'autorizzazione sul serverC'è uno script Python che è più utilizzabile per la conversione dei file online ma è necessario convertire quei file tramite la riga di comando.
Non esiste una soluzione specifica e soddisfatta per gestire i file di parole usando solo il codice PHP.
Ho cacciato per molto tempo per raggiungere questo suggerimento.