将多个文本文件合并为一个文本文件(并返回原​​始文件)lua和php

时间:2014-02-06 20:39:50

标签: php file text lua

基本上我有一个lua客户端和一个php服务器。假设我在服务器上有一个包含多个文本文件的目录,例如:

  • 服务器上的目录
    • 文件1
    • file2的
    • file3的

我想将目录中的所有文件合并为一个,但我希望它能够获取文件并将文件放回名称。在压缩文件中的含义必须是每个段的标题(文件中的文本)例如

简明文本文件:

header for file1 to identify it for later use
file1's contents here
header for file2 to identify it for later use
file2's contents here
header for file3 to identify it for later use
file3's contents here

这样就可以将其与内容和名称放回原位。

PHP:我需要php将文件夹内容压缩成一个文本文件(所有文件夹项都是文本文件),这样我就可以将它发送到lua客户端

LUA:我需要lua才能从php服务器获取数据并将文件解压缩到指定的文件夹中

我不想使用实际的压缩算法我只想将所有文本文件合二为一,然后将它们放回去。感谢

1 个答案:

答案 0 :(得分:1)

使用PHP中的标记连接文件应该很简单,例如

$fpAll = fopen("fileAll", w+);
$file1 = file_get_contents("file1");
$file2 = file_get_contents("file2");
$h = "# some file separation marker line";
$all = $h + "\n" + $file1 + $h + "\n" + $file2 ...;
... send $all to client ...

在Lua方面,假设一个HTTP库提供响应作为类文件对象,

separatonMarker = "# some file separation marker line"
files = {}
fileCount = 0
for line in response:lines() do
     if line == separationMarker then
         nextFile = {}
         fileCount = fileCount + 1
         files[fileCount] = nextFile
     else
         table.insert(nextFile, line) -- append to end
     end
end

如果要在本地保存文件,则可以在创建新的nextFile之前打开文件,并将nextFile中的每一行保存到其中。