如何在PHP中读取远程ZIP文件内的TXT文件?
如何在PHP中读取远程ZIP文件内的TXT文件?
我来帮你调整代码,解决读取远程ZIP里readme.txt的问题~
首先得指出你原代码里的两个小问题:
- URL拼写失误,
htps应该是https,这个小错误会导致连接不上目标资源 - PHP的
ZipArchive类没办法直接打开远程ZIP文件,得先把远程ZIP下载到本地临时文件,再进行后续操作
下面是调整后的完整代码,我给你拆解下关键步骤:
<?php // 修正后的远程ZIP文件URL(注意:你原URL里的#readme.txt是错误格式,要替换成真实的ZIP文件链接) $remoteZipUrl = 'https://downloads.wordpress.org/plugin/your-plugin-file.zip'; // 创建系统临时目录下的临时文件,用来存储下载的ZIP $tempZipFile = tempnam(sys_get_temp_dir(), 'remote_zip'); // 把远程ZIP下载到本地临时文件 if (copy($remoteZipUrl, $tempZipFile)) { $zip = new ZipArchive; if ($zip->open($tempZipFile) === TRUE) { // 读取ZIP包内的readme.txt内容 $readmeContent = $zip->getFromName('readme.txt'); if ($readmeContent !== FALSE) { echo $readmeContent; } else { echo "ZIP文件里找不到readme.txt哦"; } $zip->close(); } else { echo "无法打开下载的ZIP文件"; } // 用完临时文件后删除,避免占用服务器空间 unlink($tempZipFile); } else { echo "无法下载远程ZIP文件"; } ?>
关键步骤说明:
- 用
tempnam创建临时文件:借助系统临时目录,不用自己手动管理文件路径,更安全省心 - 用
copy下载远程ZIP:这个函数能直接处理远程资源,比手动用fopen处理更简单 - 读取完成后删除临时文件:避免服务器上堆积无用的临时文件,保持资源整洁
另外要注意:你原代码里的htps://downloads.wordpress.org/plugin/#readme.txt是无效链接,实际要替换成具体的插件ZIP文件地址(比如类似https://downloads.wordpress.org/plugin/akismet.5.3.zip这样的格式),否则无法正常下载资源。
备注:内容来源于stack exchange,提问作者horje com
相关产品推荐
相关产品推荐

