使用ZipArchive更改docx头变量。

问题描述 投票:0回答:1

我使用ZipArchive来改变docx的变量

例如。


<?php
$template_file_name = 'template.docx';

$rand_no = rand(111111, 999999);
$fileName = "results_" . $rand_no . ".docx";

$folder   = "results_";
$full_path = $folder . '/' . $fileName;

try
{
    if (!file_exists($folder))
    {
        mkdir($folder);
    }       

    //Copy the Template file to the Result Directory
    copy($template_file_name, $full_path);

    // add calss Zip Archive
    $zip_val = new ZipArchive;

    //Docx file is nothing but a zip file. Open this Zip File
    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",  "[email protected]",  $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();
    }
}
catch (Exception $exc) 
{
    $error_message =  "Error creating the Word Document";
    var_dump($exc);
}
?>

但是所有的页面都有重复的页眉,例如变量token1。我无法改变页眉变量,即使是同一个内容变量。

谁能帮帮我?

php ziparchive
1个回答
0
投票

我解决了这样的问题。

<?php
$key_file_name = 'word/header1'
$message = $zip_val->getFromName($key_file_name);  
?php

这里显示了我的头xml。

© www.soinside.com 2019 - 2024. All rights reserved.