【问题标题】:Why does file_get_contents() return the error "Filename cannot be empty"?为什么 file_get_contents() 返回错误“文件名不能为空”?
【发布时间】:2009-12-10 16:09:01
【问题描述】:

我几乎是 PHP 的新手。我的背景是 C/C++ 和 C#。我正在尝试对一些简单的 PHP 代码进行面向对象化,但我做错了。

类代码:

class ConnectionString
{
  public $String = "";
  public $HostName = "";
  public $UserName = "";
  public $Password = "";
  public $Database = "";

  function LoadFromFile($FileName)
  {
    $this->String = file_get_contents($Filename);
    $Values = explode("|", $this->String);
    $this->HostName = $Values[0];
    $this->UserName = $Values[1];
    $this->Password = $Values[2];
    $this->Database = $Values[3];
  }
}

调用代码:

$ConnectionString = new ConnectionString();
$FileName = "db.conf";
$ConnectionString->LoadFromFile($FileName);
print('<p>Connection Info: ' . $Connection->String . '</p>');

我在file_get_contents($Filename) 行收到一个错误消息:文件名不能为空。如果我硬编码文件名而不是 $Filename,那么我只需获取字段的所有空字符串。

我错过了什么简单的概念?

【问题讨论】:

  • 这可能是标题中包含“新手”一词的最佳书面问题。 +1。
  • 这并不奇怪,因为他来自 C/C++ 背景。

标签: php


【解决方案1】:

你搞错了:

file_get_contents($Filename);

应该是

file_get_contents($FileName);

您应该在 php.ini 文件中或使用 error_reporting() 开启通知

【讨论】:

  • 爱上这里的动态语言。
  • 哇。我知道这是一件愚蠢的事情。感谢(大家)的帮助。我实际上没有意识到 PHP 是区分大小写的。我很幸运能走到这一步。 @Greg,感谢关于通知和 error_reporting() 的提示。我不知道他们。
【解决方案2】:

PHP 中的变量区分大小写。您已将$FileName 定义为LoadFromFile() 方法的参数,但您在该方法的第一行使用了$Filename。有关 PHP 变量的更多信息:

http://www.php.net/manual/en/language.variables.basics.php

您可以采取一些措施来避免以后出现此问题:

【讨论】:

    【解决方案3】:

    变量区分大小写:

    function LoadFromFile($FileName)
    {
       $this->String = file_get_contents($Filename); // This should be $FileName!
    

    【讨论】:

      【解决方案4】:
      $this->String = file_get_contents($FileName);
      

      你有$Filename

      【讨论】:

        【解决方案5】:
         $this->String = file_get_contents($Filename);
        

        在这一行,你写 $Filename 当它应该是 $FileName

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-07-26
          • 1970-01-01
          • 1970-01-01
          • 2016-05-12
          • 2014-01-03
          • 2021-09-08
          • 1970-01-01
          相关资源
          最近更新 更多