【问题标题】:PHP file append issuePHP文件追加问题
【发布时间】:2017-08-12 10:07:38
【问题描述】:

我编写了一个旨在修改文本文件的脚本,但将文本写入文件时出现问题。 该脚本看起来有点不正统,因为我已经对其进行了几次编辑以尝试找到解决方案。问题在于实际的附加过程,我收到了通过脚本的 echo 部分输入的文本,所以这不是问题。

<?php
$text=$_POST['typer'];
echo $text;
function write(){
    global $text;
    $myfile = fopen('text.txt','a');
    fwrite($myfile, $text);
    fclose($myfile);
}
write()
?>

【问题讨论】:

  • 那么,是什么问题?它只是不向文件写入任何内容?有没有错误?
  • 您在调用write();//&lt;--this后缺少分号
  • @Steve 我也注意到了,但是 PHP 不会在脚本末尾或结束 ?&gt; 标记处自动添加一个吗?
  • 错字,在实际脚本中
  • 截图中没有。无论如何,请打开错误报告并使用实际的完整错误代码编辑您的问题 - 否则我们只是在浪费时间猜测。

标签: php append


【解决方案1】:

您可以将 $text 作为参数传递。不需要全局变量

<?php
$text=$_POST['typer'];
echo $text;
write($text);

function write( $text ) {
    $myfile = fopen('text.txt','a');
    fwrite($myfile, $text);
    fclose($myfile);
}
?>

要使其与全局变量一起使用,您需要$GLOBALS["text"] 而不是global $text

【讨论】:

  • 在我看来确实如此,而且是一种更好的方法,但理论上它也应该与 global 一起使用,所以肯定还有其他事情发生。
  • 将全局变量添加到答案中
【解决方案2】:

这应该可行:

<?php
$text=$_POST['typer'];
echo $text;
function write($text) {
    $myfile = fopen('text.txt','a');
    fwrite($myfile, $text);
    fclose($myfile);
}
write($text);
?>

否则配置错误日志,看看是否可能有其他事情发生......

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
    $text=$_POST['typer'];
    echo $text;
    function write($text) {
        $myfile = fopen('text.txt','a');
        fwrite($myfile, $text);
        fclose($myfile);
    }
    write($text);
    ?>

根据我的经验,这通常是权限问题,您尝试写入的文件没有必要的权限来允许您打开和写入它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    • 2020-09-11
    • 2018-01-08
    • 2011-11-10
    • 2015-09-13
    • 1970-01-01
    • 2021-04-21
    相关资源
    最近更新 更多