用php读取.txt并写入同一个文件

时间:2014-03-20 01:40:32

标签: php

我正在研究一个简单的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);   

?>

2 个答案:

答案 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);

PHP Documentation

修改

我已经重做了这段代码。如果您正在尝试切换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);

?>