2015-06-04 3 views
1

я узнал, что, чтобы создать структуру, я могу создать массив так:Как написать структуру в файл в PHP?

$MyStructure = array (
    'id' => '12345', 
    'name' => 'myName'); 

Я также знаю, писать в файл, я могу использовать:

file_put_contents($fileName, $myTextToSave, FILE_APPEND); 

Но это функция сохраняет его в простом текстовом формате. Я хочу знать о таких функциях, как на языке C: fwrite(&record, sizeof(struct myStructure), 1, fp);

Есть ли какая-либо функция в PHP, которая может хранить данные в кусках структуры данных, а затем извлекать их в формате структуры данных?

+3

Используйте база данных, и все просто. – Rizier123

+0

База данных полезна, когда у нас есть больше полей с маленькими аму nt данных в каждом поле. Но я хочу использовать структуры для хранения сообщений, комментарии, заданные пользователем. – Saurabh

+0

Компромисс может заключаться в использовании 'serialize'. – ficuscr

ответ

1

Вы можете написать свою структуру в файл с файлом_put_contents, как вы указали в своем сообщении.

Вы можете сериализовать и десериализируются массивы или объекты в файл с помощью следующей документации:

http://php.net/manual/en/function.serialize.php

http://php.net/manual/en/function.unserialize.php

Так это будет выглядеть следующим образом:

file_put_contents($fileName, serialize($MyStructure), FILE_APPEND); 
+0

Спасибо @trixtur! Могу я получить от вас еще одну услугу? Как получить каждую структуру отдельно? Спасибо заранее! – Saurabh

+0

Вы можете либо записать их в разные файлы, либо вы можете установить специальный разделитель между ними, а затем взорвать содержимое файла. Затем проведите через каждую из результирующих строк в массиве и несериализуйте их. – trixtur

+0

Мне сказали, что я могу немного рассказать о своих ответах. Если это непонятно, дайте мне знать. – trixtur

1

Ну, если вы должны сделать это таким образом, и не может обойтись без базы данных, а затем посмотрите на это:

http://php.net/manual/en/function.pack.php

Но это для хранения данных (бинарных). Если вы просто хотите хранить массивы в файлах, используйте serialize() или json_encode()