2014-02-06 98 views
0

基本上我有一個lua客戶端和一個php服務器。可以說,我有多個文本文件服務器上的目錄,例如:將多個文本文件合併成一個文本文件(並返回到原始文件)lua和php

  • 服務器上的目錄
    • 文件1
    • 文件2
    • 文件3

我會喜歡把一個目錄中的所有文件合併成一個目錄,但是我希望它能夠接受這個文件,並把fil後面跟着名字。在濃縮的文件意味着有將不得不爲每個段(文本從文件)例如頭

簡明文本文件:

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

串聯文件與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 LIB提供響應的類似文件的對象,

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中的每一行保存到文件中。

+0

謝謝!感謝這是我需要的。 – user3214283

相關問題