我的php代码看起来不错,但有两个类似的函数,一个失败,另一个运行成功

问题描述 投票:0回答:1

代码

<?php
// Function to print the first N lines of a file
function printFirstLines($filename, $lines) {
$file = fopen($filename, 'r');
if ($file) {
    $lineCount = 0;
    while (!feof($file) && $lineCount < $lines) {
        echo fgets($file);
        $lineCount++;
    }
    fclose($file);
} else {
    echo "Error opening the file.";
}
}
function updateFileContent($filename, $content) {
$file = fopen($filename, 'a'); // 'a' mode appends to the file
if ($file) {
    fwrite($file, $content); // Add a new line
    fclose($file);
    echo "Content has been updated/added to the file.";
} else {
    echo "Error opening the file.";
}
}
// Example usage:
// (i) Print the first 5 lines of a file
echo "Printing the first 5 lines of the file:<br>";
printFirstLines("example.txt", 5);
// (ii) Update/Add content to a file
$newContent = "<br>This is a new line added at " . date("Y-m-d H:i:s");
echo "<br>Updating the file with new content:<br>";
updateFileContent("example.txt", $newContent);
?>

输出如下:

Printing the first 5 lines of the file:
He raced to the grocery store. He went inside but realized he forgot his wallet. He raced back home to grab it. Once he found it, he raced to the car again and drove back to the grocery store.
Updating the file with new content:
Error opening the file.

如您所见,printFirstLines 函数工作正常。但在 updateFileContent 中,如果条件失败。我尝试了写入模式和附加模式,但只有在读取模式下才会打开,否则会失败。到底是什么问题,是浏览器不允许写入该文件夹或 smtg 其他吗?

我试图读取文件的几行,然后将一行追加到文件中,我能够读取几行,但在追加模式下打开文件时,代码不起作用,if 条件将变为 false 并显示打开文件时出错

php file web append
1个回答
0
投票

我认为问题可能与文件权限或服务器配置有关,而不是 PHP 代码本身的问题。

  • 确保文件具有适当的写入权限(例如 664 或 644)
  • 服务器可能具有 open_basedir 限制,阻止写入某些目录。
  • 请尝试使用绝对路径而不是相对路径。
  • 请尝试使用 fil_put_contents 函数而不是 fwrite。只是测试是否可以完成。 我希望这对您的问题有所帮助。
© www.soinside.com 2019 - 2024. All rights reserved.