gpt4 book ai didi

php - 如何在php中执行file_get_contents后清除内存

转载 作者:行者123 更新时间:2023-12-04 02:21:16 24 4
gpt4 key购买 nike

我正在尝试将某些变量添加到已经包含一些内容的几个文件中。

我正在使用 file_get_contents 复制特定文件的内容,然后使用 file_put_contents 将变量值与现有内容一起粘贴到该文件。

问题是,在第一个实例中,它工作正常,但在第二个文件中,它粘贴了已存储在内存中的所有内容。它将第一个文件的所有内容与第二个文件的内容放在一起。

有什么方法可以在下一个 file_get_contents 执行之前清除内存。或者我的概念在这里是错误的。

这是我的代码...

<?php

if ($_POST["submit"]) {

$ip = $_POST['ip'];
$subnet = $_POST['subnet'];
$gateway = $_POST['gateway'];
$hostname = $_POST['hostname'];
$domain = $_POST['domain'];
$netbios = $_POST['netbios'];
$password = $_POST['password'];


$ipfile = 'one.txt';

$file = fopen($ipfile, "r");
$ipfileContents = fread($file, filesize($ipfile));

$ipcontent = "ip='$ip'\n";
$ipcontent .= "netmask='$subnet'\n";
$ipcontent .= "gw='$gateway'\n";
$conten = $ipcontent . $ipfileContents;

$file = fopen($ipfile, "w");
fwrite($file, $ipfileContents);

fclose($file);

$ipsh = shell_exec('sh path/to/CHANGE_IP.sh');



$hostfile = 'two.txt';

$fileh = fopen($hostfile, "r");
$hostfileContents = fread($fileh, filesize($hostfile));

$hostcontent = "ip='$ip'\n";
$hostcontent .= "m_name='$hostname'\n";
$hostcontent .= "fqdn='$domain'\n";
$conten = $hostcontent . $hostfileContents;

$fileh = fopen($hostfile, "w");
fwrite($fileh, $hostfileContents);

fclose($fileh);

$hostsh = shell_exec('sh path/to/MODIFY_HOSTS.sh');


}








?>

我试过unset,但是没用

$ipfilecontents->__destruct();
unset($ipfilecontents);

更新:

file_get_contents & file_put_contents 有一些并发问题。所以我不得不将我的方法更改为 fopen/fwrite/fclose 并且它完美地工作。感谢 Jacinto 的帮助。

最佳答案

        if ($_POST["submit"]) {

$ip = $_POST['ip'];
$subnet = $_POST['subnet'];
$gateway = $_POST['gateway'];
$hostname = $_POST['hostname'];
$domain = $_POST['domain'];
$netbios = $_POST['netbios'];
$password = $_POST['password'];


$ipfile = 'one.txt';

$file = fopen($ipfile, "r");
$ipfileContents = fread($file, filesize($ipfile));

$ipcontent = "ip='$ip'\n";
$ipcontent .= "netmask='$subnet'\n";
$ipcontent .= "gw='$gateway'\n";
$content = $ipcontent . $ipfileContents;

$file = fopen($ipfile, "w");
fwrite($file, $content);

fclose($file);

$ipsh = shell_exec('sh path/to/CHANGE_IP.sh');

//do the same to the next file
}

关于php - 如何在php中执行file_get_contents后清除内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29175265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com