我想在文本文件中编写一个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"
我想要一种简单的方法将此对象写入文本文件,并希望读取文件以获取我定义的属性。请帮帮我。
提前致谢。
答案 0 :(得分:22)
您可以在文本文件中使用以下代码来编写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;
}
}
答案 1 :(得分:3)
您可以在将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
提供给您:
$obj = unserialize(file_get_contents($file));
echo $obj->birthdate;//YYYY-MM-DD
然后你可以反序列化():
{{1}}