我的上一个问题没有得到很好的解释。
我在这里要做的是将数据插入到PHP文件中,在另一个.php文件中使用fwrite功能。
为了保持这个简单,我将我想要的数据标记为file.php,而我正在使用fwrite执行的那个是edit.php
现在,我把写下来了,我的问题是,我需要在file.php关闭php标签之前插入那些数据。
我尝试做的是,删除关闭的php标记,编写数据,然后重写标记。
以下是我的源代码:
<?php
$rows = file("file.php");
$tagremove = "?>";
foreach($rows as $key => $row) {
if(preg_match("/($tagremove)/", $row)) {
unset($rows[$key]);
}
}
file_put_contents("file.php", implode("", $rows));
$User = $_GET["user"];
$File = "file.php";
$Handle = fopen($File, "a");
fwrite($Handle, "");
fwrite($Handle, $User);
fwrite($Handle, "\r\n");
fwrite($Handle, "?>");
print "Data Written";
fclose($Handle);
?>
当我在Edit.php上运行它时,它会将该数据插入到文件中,但它只写入第一行,并替换已存在的任何内容。 (在我的情况下,它是开放的php标签)。我不知道我做错了什么,或者是否有其他方法可以做到这一点,但是任何帮助都会受到赞赏。
编辑:这又是聊天客户端。
我有一个文件,它将一条消息发送到客户端然后读取的.txt文件中。
该文件正在读取file.php(staff.php)以检查用户提交的是否是工作人员。
如果用户是工作人员,那么它会更改send.php中的用户名变量。
到目前为止,send.php只是成功的,包括Staff.php,我已经尝试了staff.txt,原因是,php代码在staff.php中。
答案 0 :(得分:4)
试试这个:
$data="echo 'hello world!';";
$filecontent=file_get_contents('file.php');
// position of "?>"
$pos=strpos($filecontent, '?>');
$filecontent=substr($filecontent, 0, $pos)."\r\n".$data."\r\n".substr($filecontent, $pos);
file_put_contents("file.php", $filecontent);
请不要忘记,您需要检查用户的数据。
答案 1 :(得分:0)
更好的替代方法是使用数据文件。生病使用json,因为它易于使用,也很容易被人眼解析:
// read file
$data = file_get_contents('data.json');
$json = json_decode($data, true);
// manipulate data
$json['users'][] = $_GET['user'];
// write out file
$dataNew = json_encode($json);
file_put_contents('data.json', $dataNew);
原因是,php代码在staff.php
中
这不是你解决的问题。您应该从数据存储中写入/读取此类信息 - 可以是文件或数据库......但不是实际的脚本。