2009-12-10 15 views
6

Jestem prawie kompletnym początkującym dla PHP. Moje tło to C/C++ i C#. Próbuję obiektowo orientować się w jakimś prostym kodzie PHP, ale robię coś nie tak.Dlaczego file_get_contents() zwraca błąd "Nazwa pliku nie może być pusta"?

kod Klasa:

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]; 
    } 
} 

Kod telefoniczny:

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

Dostaję błąd ann na linii file_get_contents($Filename) treści: Nazwa pliku nie może być pusta. Jeśli zakodowuję nazwę pliku w miejsce $ Filename, po prostu otrzymam wszystkie puste ciągi dla pól.

Jakiego prostego pojęcia brakuje mi?

+1

To może być najlepszy napisany pytanie ze słowem "początkującego" w tytule , zawsze. +1. –

+1

Nic dziwnego, ponieważ pochodzi z tła C/C++. – MiseryIndex

Odpowiedz

12

Masz przypadek źle:

file_get_contents($Filename); 

powinny być

file_get_contents($FileName); 

Należy włączyć zawiadomień, albo w pliku php.ini lub przy użyciu error_reporting()

+1

Muszę uwielbiać tutaj dynamiczne języki. –

+0

Wow. Wiedziałem, że to coś głupiego. Dzięki wszystkim za pomoc. Właściwie nie zdawałem sobie sprawy, że w PHP rozróżniana jest wielkość liter. Mam szczęście, że dotarłem tak daleko. @Greg, dzięki za wskazówkę dotyczącą NOtices i error_reporting(). Nie wiedziałem o nich. –

1

Variable sprawę -wrażliwość:

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

masz $Filename

3

Zmienne w PHP jest rozróżniana. Zdefiniowałeś $FileName jako parametr metody LoadFromFile(), ale użyłeś $Filename w pierwszym wierszu tej metody. Aby uzyskać więcej informacji na temat zmiennych PHP:

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

Istnieje kilka rzeczy, które możesz zrobić, aby uniknąć tego problemu w przyszłości:

  • użyć IDE, takie jak Eclipse PDT, które obsługują auto- uzupełnianie zmiennych.
  • Skonfiguruj error_reporting, aby wyświetlić wszystkie typy błędów (E_ALL).
1
$this->String = file_get_contents($Filename); 

Na tej linii, piszesz $ File n ame kiedy należy $ File N ame

Powiązane problemy