php - 如何使用 PHP 打开/解密受密码保护的 word 文件 (docx)
问题描述
我正在尝试使用 PHP 以编程方式打开一个 word 文件 (.docx)。此 word 文件受密码保护和加密,因此如果不提供密码,则无法显示其内容。我当然知道密码。
但是我怎样才能通过提供密码来用 PHP 打开这个 word 文件呢?
唯一至少提到密码保护的 PHP 库是伟大的 PhpOffice/PhpWord - 但它不支持打开受密码保护的文件:https ://github.com/PHPOffice/PHPWord/issues/357
请注意,密码保护以防止不必要的更改和 - 这是我的情况 - 保护它免受未经授权的打开之间存在细微差别。
TIA
解决方案
欢迎您查看我的PHPDecryptXLSXWithPassword 存储库。
先用密码解密文件,然后用 PHPWord 使用解密后的文件。
这是一个例子:
require_once('PHPDecryptXLSXWithPassword.php');
$encryptedFilePath = '../path/to/encrypted/file.docx';
$password = 'mypassword'; // password to "open" the file
$decryptedFilePath = '../path/to/decrypted/file.docx';
decrypt($encryptedFilePath, $password, $decryptedFilePath);
// now you can use PHPWord with $decryptedFilePath
注意:这是一个实验代码,所以请谨慎使用。不要在生产中使用!
推荐阅读
- angularjs - 根据条件为属性赋值
- python - Python 类相关错误?
- go - 不能使用函数(类型 func())作为参数类型
- php - 基于词频减少文本的算法
- caching - 通道并发保证
- java - 验证 servlet 和 jsp 中的文件上传
- google-cloud-platform - 使用浏览器前端打开终端时无法访问端口 22 上的 ssh
- c++ - 按位包含 OR 的错误结果
- jsf - 带有 ui:insert-ui:composition 的模板不能正常工作
- c# - 当文件上传到 azure 文件共享时,如何添加触发器以将文件从 azure 文件共享移动到 azure blob?