【问题标题】:Opening File in php在php中打开文件
【发布时间】:2018-02-11 17:33:32
【问题描述】:

我想在 php.ini 中打开文件。 但是当我使用 fopen() 打开一个文件时,我得到了错误。 我的代码如下。

<?php

chdir("/home/chintan/directory");

$fp = fopen("abc.txt","w");

if($fp == false)
{
echo "Error while opening file";
}

fwrite($fp,"Hi........");
fclose($fp);

?>

文件存在且文件/目录具有可写权限 它给出了我使用 echo 打印的错误。 我尝试过使用 w+,但它给出了相同的结果

【问题讨论】:

  • 文件是否存在?试试w+作为文件模式。
  • 回显“打开文件时出错”;
  • 如何检查文件/目录权限是否可写..

标签: php


【解决方案1】:

检查您的 php.ini 并设置以下内容:

display_errors = On
error_reporting = E_ALL | E_STRICT

这应该向您显示“真正的”潜在错误。

【讨论】:

  • 本指南应该是问题下的评论,因为它试图帮助 OP 提供更完整的问题。它不提供解析技术。
  • @mickmackusa 这是将近 10 年前的事了。规则没有那么极端。如果你想改进它,让它变得更好。
  • 我认为这篇文章不需要改进。只需将其转换为评论即可。
【解决方案2】:

您必须在工作文件夹后提供“/”才能访问它 错了:

chdir("/home/chintan/directory");

正确:

chdir("/home/chintan/directory/");

你的代码:

<?php
chdir("/home/chintan/directory/");

$fp = fopen("abc.txt","w");

if($fp == false)
{
echo "Error while opening file";
}

fwrite($fp,"Hi........");
fclose($fp);

?>

附注:

当php处于安全模式时,由于安全模式的限制,它不会允许将目录更改为无法访问的目录

函数只是失败而不会产生任何类型的错误 消息。

Reference

【讨论】:

    【解决方案3】:

    我总是使用 FALSE,而不是 false。编写比较的更短的方法是if (!$fp) {...}。两者都会起作用。如果这是一个理论上的问题,那么,在一个理智的世界里 :) 你的代码应该可以工作。我使用 NetBeans 的 Code Insight 来获取语法建议并标记不正确的行。

    作为提示,您的代码需要在写入文件的代码周围添加一个 else 子句。现在即使 fopen 返回 false,它也会写入文件。我的意思是错误的。 :)

    【讨论】:

    • 这不是这个问题的真正答案,是吗?布尔 false 使用什么大小写真的无关紧要。
    • @Evert,我不是服务器管理员,所以我对设置 PHP 的配置选项不够了解,因此它无法正常工作。 ;) 也许某些错误级别可以设置为在错误的情况下失败,因为文档和 Code Insight 都使用大写字母而没有别的。无论如何,userxx 已经确认这不是问题。
    • 是的,但是 'false' 和 'FALSE' 在 PHP 中都很好。如果你不知道答案也没关系,但不要回答:)
    猜你喜欢
    • 2011-03-07
    • 2011-07-17
    • 1970-01-01
    • 2013-05-07
    • 2011-02-06
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多