2014-02-06 2 views
0

В основном у меня есть клиент lua и php-сервер. Допустим, у меня есть каталог на сервере с несколькими текстовыми файлами, например:Слияние Несколько текстовых файлов в один текстовый файл (и обратно к исходным файлам) lua и php

  • Каталог на сервере
    • file1
    • 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

Конкатенация файлов с маркерами в 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, предполагающей НТТР 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

Смежные вопросы