Создать и прочитать php-объект в текстовом файле?
Я хочу написать php-объект в текстовом файле. Объект php подобен этому
$obj = new stdClass();
$obj->name = "My Name";
$obj->birthdate = "YYYY-MM-DD";
$obj->position = "My position";
Я хочу написать этот $obj в текстовом файле. Текстовый файл находится в этом пути
$filePath = getcwd().DIRECTORY_SEPARATOR."note".DIRECTORY_SEPARATOR."notice.txt"
Я хочу простой способ записать этот объект в текстовый файл и хочу прочитать файл, чтобы получить свойства, определенные мной. Пожалуйста, помогите мне.
Спасибо заранее.
Ответы
Ответ 1
Вы можете использовать следующий код для написания php-объекта в текстовом файле...
$obj = new stdClass();
$obj->name = "My Name";
$obj->birthdate = "YYYY-MM-DD";
$obj->position = "My position";
$objData = serialize( $obj);
$filePath = getcwd().DIRECTORY_SEPARATOR."note".DIRECTORY_SEPARATOR."notice.txt";
if (is_writable($filePath)) {
$fp = fopen($filePath, "w");
fwrite($fp, $objData);
fclose($fp);
}
Чтобы прочитать текстовый файл, чтобы получить свойства, как вы определили...
$filePath = getcwd().DIRECTORY_SEPARATOR."note".DIRECTORY_SEPARATOR."notice.txt";
if (file_exists($filePath)){
$objData = file_get_contents($filePath);
$obj = unserialize($objData);
if (!empty($obj)){
$name = $obj->name;
$birthdate = $obj->birthdate;
$position = $obj->position;
}
}
Ответ 2
Вы можете использовать serialize()
, прежде чем сохранять его в файл, а затем unserialize()
, чтобы получить все $obj
для вас:
$obj = new stdClass();
$obj->name = "My Name";
$obj->birthdate = "YYYY-MM-DD";
$obj->position = "My position";
$objtext = serialize($obj);
//write to file
Затем вы можете unserialize():
$obj = unserialize(file_get_contents($file));
echo $obj->birthdate;//YYYY-MM-DD