【问题标题】:Opening file on web server using PHP使用 PHP 在 Web 服务器上打开文件
【发布时间】:2012-11-05 04:32:15
【问题描述】:

我是网络开发的新手。我在 Ubuntu 12 上安装了 LAMP。我在 LAMP 服务器上运行了一个 php 文件“register.php”,它从 html 表单接收数据,然后将其保存在服务器上的临时文件中。我正在使用下面的代码。它似乎不起作用。我已经检查过它是否需要访问和权限才能执行代码,但它仍然无法创建“temp.c”

$temp=fopen("temp.c","w");
$line = fgets($temp)
fclose($temp);

附加说明:- 我能够从表单字段接收其他数据,但仅创建文件不起作用。

感谢您的帮助!

【问题讨论】:

  • 您将 temp.c 作为写入操作打开,然后您尝试从文件句柄中读取。但是,只需像在第一行中那样打开文件就应该创建了文件。您是否在错误日志中得到任何信息?
  • 好的,您在 fgets 函数后缺少分号。这至少会为你创建一个文件。休息看看 AndrewR 评论。

标签: php linux lamp


【解决方案1】:

在 fgets 函数后加分号

$temp=fopen("temp.c","w"); $line = fgets($temp); fclose($temp);

我按照我在本地服务器上的验证工作......

我对您的建议是使用 NETBEANS IDE 进行 PHP 开发,因为它会在您编写代码时自动显示语法错误.....

要在文件中插入表单数据,请使用以下代码

$entry=$_POST["myvar"]; $file="temp.c"; $open=fopen($file,"a"); 如果($打开){ fwrite($open,$entry); fclose($打开); }

'a' in fopen($file,"a") 只为写入而打开;将文件指针放在文件末尾。如果文件不存在,请尝试创建它。

'a+' in fopen($file,"a+") 打开读写;将文件指针放在文件末尾。如果该文件不存在,请尝试创建它。

'w' in fopen($file,"a+") 只为写入而打开;将文件指针放在文件开头并 ==>将文件截断为零长度

咨询this for more info

【讨论】:

  • 谢谢!但我的观点是 fopen 应该创建文件。但它无法创建,当它被我的主页(包含表单的index.html)调用时。但是,当我通过终端在本地执行相同的脚本时,它会创建文件。所以,我很困惑为什么它在通过 index.html 间接执行时不起作用?
  • 你的 PHP 代码必须在 .php 文件中,而不是在 .html 文件中在一些 .php 文件.......
  • 实际上我正在做后面的事情。我的 index.html 正在使用 POST 提交将表单数据发布到“register.php”。正如我最初提到的那样,php 脚本能够从 index.html 获取数据表单数据,但是当我尝试使用 fopen 将表单数据保存在文件中时.. fopen 本身失败..希望这能澄清我的问题
  • 那么在 register.php 文件中这个脚本之前有一些错误......它可能会产生一些致命错误,然后它将停止进一步执行代码......编辑问题并将您的代码粘贴到 register.php 中
  • 另一件事将 fopen($file, "w") 更改为 fopen($file, "a") 就像现在将数据附加到之前创建的文件中......希望这会有所帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-26
  • 1970-01-01
  • 2021-02-12
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
  • 1970-01-01
相关资源
最近更新 更多