linux下php fwrite无法写入文件怎么回事呀

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下php fwrite无法写入文件怎么回事呀相关的知识,希望对你有一定的参考价值。

需要先确认一下,用户对这个文件夹有读写权限,在fwrite将操作的文件夹外,执行ll命令,查看一下这个文件夹有没有w这个权限,如果没有的话,对上级目录执行以下chmod -R 733或者777授权命令,获得这个文件夹的写权限,才可以进行fwrite操作。
如果已有这个权限的话,检查一下你的代码问题,也有可能是fwrite写文件路径的,文件夹名称的大小写问题,找不到具体路径,所以不能创建。
参考技术A 错误信息?
你检查一下 web 服务器什么的是不是还有地方禁止写了。
还有你要怎么写?之前有这个文件吗?还是说这个文件本身就是存在的?本回答被提问者采纳
参考技术B 那应该是linux本身的文件权限问题,更改一下文件权限

fwrite无法正常工作,并写入重复的信息

我是PHP的初学者,而fwrite函数存在一些问题。我需要将信息写在一行中,然后当用户使用该表单后,该表单的信息就会移到另一行中。

示例:

用户1:形成名称:约翰电子邮件:john@gmail.com

用户2:形成名称:邦妮电子邮件:bonnie@gmail.com

文件:姓名:Jhon |电子邮件:john@gmail.com名称:Bonnie |电子邮件:bonnie@gmail.com

表单运行正常,问题出在fwrite函数中。我尝试这样

$arquivo = fopen("info.txt", "a+");
        $txt = $nome."|".$data."|".$cidade."|".$email."|".$senha."\r\n";
        fwrite($arquivo, $txt);
        fclose($arquivo);

以这种方式,每次重新加载页面时,都会复制以前的数据。

对不起,我的英语不好。预先感谢。

答案

根据您在问题中所说的内容,功能和形式运行良好,但是代码会在刷新页面时触发。您需要做的是将您的write函数绑定到一个动作。

有两种方法可以做到这一点。

1] 仅使用php和HTML是创建一个<form>并执行一个操作,该操作将指向您的包含写入功能的php文件。您将需要一个提交按钮,我认为您已经拥有该按钮,因为您的表格工作正常。这样,每次提交表单时,都会触发功能,而不是页面刷新。

<form action="your_php_file.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

只是基本示例,您可以将其扩展到想要的内容。只要确保您在php文件中使用$_POST['name']$_POST['email']来检索输入字段的值即可。

2)使用HTML,Javacript + ajax,php

在此示例中,您不需要表单,但需要使用javascript选择器获取元素的值。之后,您使用事件onClick进行ajax调用,并将所有html值发送到php文件,并以相同的方式检索值。在这种情况下,您的页面将不会刷新。

以上是关于linux下php fwrite无法写入文件怎么回事呀的主要内容,如果未能解决你的问题,请参考以下文章

php: 怎么让写入的字符串自动换行(在文本里面)?用fwrite()写入

PHP fwrite() 无法写入子目录

fwrite无法正常工作,并写入重复的信息

PHP fwrite() 用于将大字符串写入文件

php fwrite() 没有完成将字符串数据写入文件,为啥?

PHP将数据写入指定文件中