我有我的文件php file_put_contents;
export default withRouter(Feedback);
Feedback.contextType = AppContext;
当它写入我的文件 test.txt 时,输出的内容是写在文件上的字节数。
a:4:{s:4:“名称”; s:4:“ aaaa”; s:5:“电子邮件”; s:10:“ aaa@gmx.de”; s:7:“消息“; s:27:” mm“; s:8:” datetime“; s:22:” 11/10/2018 05:20:35 pm“;}
我将只写没有字节数的数据,请任何人帮助我,谢谢!
我的代码;
file_put_contents($file, $data . "\n", FILE_APPEND|LOCK_EX);
答案 0 :(得分:0)
@ Nigel Ren,我必须按照您的告诉我做...使用json ..,我必须在没有Json的情况下尝试,但是因为我对PHP感到很陌生,所以我不知道这样做。
也许是我的问题的标题,不写字节的php file_put_contents 并不是最好的方法....因为这不是我的字节数负责,而是序列化功能强> ..也许最好的标题应该是 PHP-如何在没有字节数且没有Json的情况下显示返回值。
因为我的代码中有一个数组
$data = array("name" => $this->Name, "email" => $this->Email, "message" => $this->Message, "datetime" => $datetime);
应该使用功能 serialize ,因此我收到的输出字节数。
序列化功能
PHP数组或对象或其他复杂的数据结构不能在正在运行的PHP脚本之外传输或存储或以其他方式使用。如果要在脚本的一次运行后仍保留这种复杂的数据结构,则需要对其进行序列化。那只是意味着将结构放入一个“较低的公共分母”,该分母可以由除PHP外的其他事物(例如数据库,文本文件,套接字)处理。标准的PHP函数序列化只是表达这种事情的一种格式,它将数据结构序列化为PHP独有的字符串表示形式,并且可以使用反序列化将其反转为PHP对象。但是,还有许多其他格式,例如JSON或XML。
来自here(第一个答案..)
所以,因为我将不会收到返回值以及字节数,而且我不知道只使用PHP,所以我使用了Json。在我的代码中,我只有 可以更改 else 语句,其余部分保持不变。
else
{
$file = "test.txt";
$datetime = date('m/d/Y h:i:s a', time());
$data = array("name" => $this->Name, "email" => $this->Email, "message" => $this->Message, "datetime" => $datetime);
$data = json_encode($data);
file_put_contents($file, $data . "\n", FILE_APPEND|LOCK_EX);
$messages = file($file);
foreach ($messages as $value) {
$data = json_decode($value, true);
echo "<br>"
. "<b>From: </b>" . htmlspecialchars( $data["name"])
. "<b> at: </b>" . htmlspecialchars( $data["datetime"])
. "<br><br>" . htmlspecialchars( $data["email"])
. "<br><br>" . htmlspecialchars( $data["message"])
. "<br><hr>";
}
}
现在我的文件 test.txt
中的输出{“名称”:“ aaaa”,“电子邮件”:“ aaa@gmx.de”,“消息”:“ mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm”,“ datetime”:“ 11/12/2018 02:49:46 pm”}