phpbar.de logo

Mailinglisten-Archive

[php] Probleme mit file_exists()

[php] Probleme mit file_exists()

Tim TConnect at gmx.net
Fre Aug 3 11:38:33 CEST 2007


Hallo Lutz, 


> > $path = "/path/to/file/myfile_0.tpl";
> > if(file_exists($path)) echo "jo :-)";
> >
> > Die Datei "myfile_0.tpl" existiert auch wirklich im entsprechenden 
> > Ordner. Wenn ich jetzt aber folgendes auswerten lasse:
> >
> > $path = "/path/to/file/myfile_XXX.tpl";
> 
> [...]

> mehr als Teil des if-Zweigs erkannt. Dann bekommst Du die Ausgabe 
> nämlich immer, gleich was file_exists() zurückgeliefert hat.
> 
> Was ergibt bei Dir denn folgender Quelltext:
> 
> <?php
> 
> 	$path = '/path/to/file/myfile_XXX.tpl';
> 	if (file_exists($path)) {
> 		echo 'jo :-)';
> 	}
> 
> ?>

Ich hab das aus Faulheit gerade mal nur anders geschrieben. Eigenttlich
steht da Deine Variante. 
$path = '/path/to/file/myfile_XXX.tpl';
if (file_exists($path)) {
	echo 'jo :-)';
} else {
	echo 'no :-(';
}

Und genau genommen steht da ja auch nicht "jo/no", sondern der tatsächliche
Code... :-)
Ich habe auch mal die Variante if (file_exists($path) === true) verwendet.
Also explizit ohne internes TypeCasting.

Also ich denke, dass es auch keine Rechteprobleme im Dateisystem sein
können, denn wenn ich schon keinen Lesezugriff hätte, dann würde ich ja
dauerhaft false zurück bekommen.


Hintergrund:
-------------------------------------------
Ich habe eine Kategorisierung mittels aufeinanderfolgender Zahlenreihen wie
z.B.
1
11
111
1111
12
13
131
132
[...]

Die Kategorisierungen können beliebig tief gehen, aber auf der Website
möchte ich verschiedene Layouts für ganze Obergruppen auswerten.

Angenommen, der Kunde landet in der Kategorie 1111, dann prüft das Script so
lange das Vorhandensein einer Template-Datei, bis er irgendwann mal trifft
und kürzt dabei immer eine Stelle von rechts weg.

Also template_11.tpl sei als Datei vorhanden, der Kunde landet aber in 1111,
dann:

Test template_1111.tpl => false
Test template_111.tpl => false
Test template_11.tpl => true => Dieses Template nutzen.


Nur das Problem ist, dass ich ja schon bei template_1111.tpl true zurück
bekomme, obwohl die Datei faktisch und mit mehreren Leuten geprüfter Weise
nicht existiert!!!!!

Liebe Grüße
Tim


php::bar PHP Wiki   -   Listenarchive