# file_get_contents funktioniert nicht



## DataFox (2. November 2008)

Ich will einfach nur den Inhalt einer Textdatei in eine Variable einlesen.

In der test.php habe ich folgendes:


```
$meineVar = file_get_contents('ordner2/datei.txt');
```

im gleichen Verzeichnis wie die test.php befindet sich ein Verzeichnis "ordner2", und darin die gesuchte Datei "datei.txt". Die test.php ist jedoch eingebunden, und die Datei die sie einbindet, liegt ganz wo anders. Ein include funktioniert aber mit diesem Pfad!

Ich kriege aber immer eine Fehlermeldung:


```
Warning: file_get_contents('ordner2/datei.txt') [function.file-get-contents]: failed to open stream: No such file or directory in C:\xampp\htdocs\projekte\testprojekt\templates\content\test.php on line 26
```

Wie muss ich denn den Pfad gestalten, damit die Datei gefunden wird? Angeblich kann das doch relativ gemacht werden. Fragt sich nur relativ zu was Der obersten Haupt-Datei, die alles andere einbindet? Oder relativ zu dieser Datei wo der Code steht?

Gruß
Laura


----------



## hmmNaGut (2. November 2008)

Normalerwiese wird ein relative Pfadangabe zugelassen.
vielleicht hast du einen Schreibfehler?

Kopiere mal die Datei in das Hauptverzeichnis der Anwendung und probier es dann nochmal.

Du verwendest Windows normalerweise ist die schreibweise egal.
(bzw. Gross-/Kleinschreibung)

Probiers mal mit \\ backslashes...
Windows..
Also eine wirkliche Lösung zu finden .. .
hmm.. mal schauen


----------



## kalle123456 (2. November 2008)

Entweder du nimmst gleich den absoluten Pfad oder du switcht zurück ("../").


----------



## DataFox (2. November 2008)

Zurück switchen Wieso denn das? Also

Ich habe eine Datei. Die includiert eine Datei in einem Unterordner. Die Datei in dem Unterordner macht dieses file_get_contents und will eine Datei holen, die in einem Unterordner dieses Ordners ist. 

foo
foo/erste.php
foo/bar/zweite.php
foo/bar/hier/holenMitFileGetContents.txt

zweite.php hat den file_get_contents code, und will holenMitFileGetContents.txt in eine Variable laden.

wieso soll ich zurück switchen Ich woll doch nach vorne!


----------



## kalle123456 (2. November 2008)

setze deinen include ein "./" voran.


----------



## DataFox (2. November 2008)

Njet, bringt nichts. Habe aber in der API entdeckt, das man einen zweiten Parameter angeben kann. Der besagt, das der Pfad relativ zum include path ist. Also file_get_contents('verzeichnis/datei.txt', true)

damit hats geklappt. trotzdem danke


----------



## kalle123456 (2. November 2008)

????????, ??????? ??????? ???! < "Schön, weiter so...!"


----------



## EvilO (2. November 2008)

Ich rate definitiv davon ab, die Sache über den include-Path zu regeln! Die bei weitem bessere Methode ist es einfach den Pfad absolut zu machen, also in der Datei folgendes Konstrukt zu verwenden:
	
	
	



```
$meineVar = file_get_contents(dirname(__FILE__) . '/ordner2/datei.txt');
```
Diese Methode ist vorzuziehen, da man nur so sicher sein kann, dass tatsächlich dir richtige Datei geöffnet wird. Wenn man über den include-Path geht wird die erstbeste Datei mit enstrpechendem Namen genommen, die sich in einem der include-Verzeichnisse befindet!


----------

