Я хочу заменить изображение файла docx с помощью php.Я вручную разархивировал файл, заменил и переименовал файл изображения в папке мультимедиа и снова заархивировал, но файл поврежден.так есть ли способ заменить изображение с помощью php?или просто вставить изображение с помощью php?Вот пример кода, чтобы разархивировать файл docx, заменить текст в файле document.xml и снова заархивировать.но это работает только для текстов.
$filename = resource_path() . '\\docs\\1.docx';
$zip = new ZipArchive;
$path = resource_path() . '\\docs\\files';
$res = $zip->open($filename);
if ($res === TRUE) {
$zip->extractTo($path);
$zip->close();
$c = file_get_contents($path . '\\word\\document.xml');
$c = str_replace('photolab', "<img src='.none' height='100'; width='100' ;>", $c);
unlink($path . '\\word\\document.xml');
file_put_contents($path . '\\word\\document.xml', $c);
$zip = new ZipArchive;
$zip->open(resource_path() . '\\docs\\file.docx', ZipArchive::CREATE | ZipArchive::OVERWRITE);
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($path),
RecursiveIteratorIterator::LEAVES_ONLY
);
foreach ($files as $name => $file) {
if (!$file->isDir()) {
$filePath = $file->getRealPath();
$relativePath = substr($filePath, strlen($path) + 1);
$zip->addFile($filePath, $relativePath);
}
}
$value = $zip->close();
} else {
echo 'failed!';
}
return "done";