php文件\u放入\u内容,不写入字节
我有我的文件php文件把内容这样php文件\u放入\u内容,不写入字节,php,file,Php,File,我有我的文件php文件把内容这样 file_put_contents($file, $data . "\n", FILE_APPEND|LOCK_EX); 当它写入我的文件test.txt时,输出是写入文件的字节数 a:4:{s:4:“姓名”;s:4:“aaaa”;s:5:“电子邮件”;s:10:“aaa@gmx.de“s:7:”消息“s:27:”mm“s:8:”日期时间“s:22:”2018年10月11日05:20:35” 我希望它只写没有字节数的数据,请任何人帮助我,谢谢 我的代码 <
file_put_contents($file, $data . "\n", FILE_APPEND|LOCK_EX);
当它写入我的文件test.txt时,输出是写入文件的字节数
a:4:{s:4:“姓名”;s:4:“aaaa”;s:5:“电子邮件”;s:10:“aaa@gmx.de“s:7:”消息“s:27:”mm“s:8:”日期时间“s:22:”2018年10月11日05:20:35”
我希望它只写没有字节数的数据,请任何人帮助我,谢谢
我的代码
<?php
header('Content-Type: text/html; Charset=utf-8');
mb_internal_encoding('UTF-8');
date_default_timezone_set('Europe/Berlin');
error_reporting(E_ALL);
class ClassProveContakt3
{
private $Name;
private $Email;
private $Message;
private $PostOK;
private $DateTime;
private $items;
function __construct()
{
$this -> DateTime = date('m/d/Y h:i:s a');
$this -> items = ['Name', 'Email', 'Message'];
$flag = true;
foreach ( $this -> items as $key ) {
if ( empty ( $_POST[$key] ) ) {
$flag = false;
} else {
$this -> $key = trim( filter_var( $_POST[$key], FILTER_SANITIZE_STRING ) );
}
}
$this -> PostOk = $flag;
}
function ShowForm()
{
?>
<form method="POST">
<label for="name">Name </label>
<input type="text" id="name" name="Name" value="<?= $this->Name ?>">
<label for="email">E-mail </label>
<input type="email" id="email" name="Email" value="<?= $this->Email
?>">
<br><br>
<label> Message: <br>
<textarea cols="45" rows="6" name="Message"><?= $this->Message ?></textarea>
</label>
<br><br>
<input type="submit" name="post" value="POST COMMENT" id="comment">
</form>
<?php
}
function PostOkT()
{
if ($this -> PostOK)
{
return;
}
if (empty($this->Name) || empty($this->Email) || empty($this->Message))
{
echo "<br>" . "<b>" . "<h3>*** Please enter all required fields ***</h3>" . "</b>";
}
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 = serialize($data);
file_put_contents($file, $data . "\n", FILE_APPEND|LOCK_EX);
$messages = file($file);
foreach ($messages as $value) {
$data = unserialize($value);
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>";
}
}
}
}
?>
名称
@Nigel Ren,我必须按照你说的做…使用json,我必须尝试不使用Json,但因为我对PHP非常陌生,我不知道该怎么做
也许我问题的标题,php文件\u put\u没有写入字节的内容不是最好的…因为这不是我字节数的责任,而是序列化函数。也许最好的标题应该是,PHP-如何显示返回值而不使用字节数和Json
因为我的代码中有一个数组
$data = array("name" => $this->Name, "email" => $this->Email, "message" => $this->Message, "datetime" => $datetime);
应该使用函数序列化,因此我接收字节数的输出
序列化函数
PHP数组、对象或其他复杂数据结构不能在运行的PHP脚本之外传输、存储或以其他方式使用。如果您想将如此复杂的数据结构保持在脚本的一次运行之外,则需要对其进行序列化。这只是意味着将结构放入一个“较低的公分母”中,可以由PHP以外的东西处理,比如数据库、文本文件、套接字。标准的PHP函数serialize只是一种表达这种东西的格式,它将数据结构序列化为PHP特有的字符串表示形式,并且可以使用unserialize将其反转为PHP对象。不过还有很多其他格式,比如JSON或XML
来自(第一个答案)
因此,因为我不会收到返回值和字节数,而且我不知道只使用PHP,所以我使用Json。在我的代码中,我有only来更改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>";
}
}
else
{
$file=“test.txt”;
$datetime=date('m/d/Y h:i:sa',time());
$data=array(“名称”=>$this->name,“电子邮件”=>$this->email,“消息”=>$this->message,“日期时间”=>$datetime);
$data=json_encode($data);
文件内容($file,$data.\n),文件附加(LOCK_EX);
$messages=文件($file);
foreach($value形式的消息){
$data=json_decode($value,true);
回声“
”
“From:”.htmlspecialchars($data[“name”]))
“在:”.htmlspecialchars($data[“datetime”]))
.htmlspecialchars($data[“email”])
.htmlspecialchars($data[“message”])
.“
”;
}
}
现在从我的文件test.txt获得我的输出
{“姓名”:“aaaa”,“电子邮件”:aaa@gmx.de“,”消息“:”mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
你在输出什么?你在哪里输出?文件是否真的写入?输出到我的$file=“test.txt”;这个文件真的写了吗?是的,你尝试过将数据保存为Json而不是Json,但我会用php编写所有代码。。。