我正在研究一个简单的php读取和写入txt文件。我能够读取文件但不能写入。我尝试过以下各种变体,但无济于事。我试图读取其中包含0或1的txt文件并进行切换。但出于某种原因,我只能阅读。如何将此代码写入文件?注意我对txt文件有写权限。
THX 富
<?php
$status = readfile("0.txt");
echo $status;
$file_handle = fopen("../light_switches/0.txt", "w");
if($status = 1){
$file_contents = "0";
fwrite($file_handle, $file_contents);
}
else if($status = 0){
$file_contents = "1";
fwrite($file_handle, $file_contents);
}
fclose($file_handle);
?>
答案 0 :(得分:0)
readfile
返回从文件读取的字节数,但不返回文件内容。
您可以使用file_get_contents
获取文件内容,并使用file_put_contents
撰写:
$path = "../light_switches/0.txt";
file_put_contents($path, file_get_contents($path) === '0' ? '1' : '0');
答案 1 :(得分:0)
使用file_put_contents()。它与调用fopen(),fwrite()和fclose()相同。使用标志FILE_APPEND
file_put_contents($filepath, $content, FILE_APPEND);
修改强>
我已经重做了这段代码。如果您正在尝试切换txt文件的0和1,则此代码正常工作。只需用你的文件路径替换。
<?php
$file_path = '0.txt';
if (!file_exists($file_path)) {
echo 'File does not exist';
exit;
}
$currentContent = file_get_contents($file_path);
echo $currentContent;
if ($currentContent == '0') {
$newContent = '1';
}
elseif ($currentContent == '1') {
$newContent = '0';
}
else {
//Start the file fresh if it found extra lines for example
$newContent = '0';
}
file_put_contents($file_path, $newContent);
?>