使用Fwrite编辑一个PHP文件和另一个PHP文件

使用Fwrite编辑一个PHP文件和另一个PHP文件,php,fwrite,Php,Fwrite,我的最后一个问题没有解释清楚 我在这里试图做的是在另一个.PHP文件上使用fwrite特性将数据插入到一个PHP文件中 为了简单起见,我将要插入数据的一个标记为file.php,并将使用fwrite执行的一个标记为edit.php 现在,我写下来了,我的问题是,我需要在file.php上的结束php标记之前插入数据 我尝试做的是,删除结束的php标记,写入数据,然后重写标记 以下是我的源代码: <?php $rows = file("file.php"); $tagremove =

我的最后一个问题没有解释清楚

我在这里试图做的是在另一个.PHP文件上使用fwrite特性将数据插入到一个PHP文件中

为了简单起见,我将要插入数据的一个标记为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中的username变量


到目前为止,send.php只成功地包含了Staff.php,我尝试了Staff.txt,原因是,php代码在Staff.php中。

Ok更好的选择是使用数据文件。我会使用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中

这不是你能解决的问题。您应该从数据存储中写入/读取此类信息-可以是文件或数据库。。。但不是实际的脚本。

尝试以下操作:

$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);

请不要忘记,您需要检查来自用户的数据。

您知道每次执行该命令都会杀死小猫吗?我的意思是,如果你讨厌小猫,那么…我不是在征求意见,我想知道我如何做到这一点。是的,这很容易受到代码注入的影响。但你为什么要这么做?有很多更好的方法。。。使用一个数据文件——json、ini、xml——甚至是一个序列化的php数组……如果你能解释你所做的事情背后的原因,我相信有人能想出一个更安全的替代方案。但是如果这个文件中包含php,你能用php中的包含功能来包含源代码吗?不要在数据中包含源代码。数据就是数据,它不应该包含逻辑。您的文件应该向数据源读写数据,而不是将数据存储在逻辑中,除非数据是静态的且不需要更改。这是可行的。我爱你。