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?

È stato utile?

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

    .
  1. antiword - non molto efficace come converti in testo normale.
  2. pyODconvert
  3. open-office o liboffice - tramite UNO
  4. Utilità unoconv - È necessario installare l'autorizzazione sul server

    C'è 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top