php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.12.2006, 23:12  
Benutzer
 
Registriert seit: 03.08.2006
Beiträge: 49
Riks
Standard file_exists geht nicht !?

Hi,

folgender Code

PHP-Code:
        $className=ucfirst($className);
        
$classPath='lib/'.$className.'.class.php';
        
$found false;
        if(
file_exists($classPath)) $found true;
        
        if(!
$found){ ROOT::SystemError('Die Klasse '.$className.' wurde nicht gefunden!'); exit; }
        
        require_once(
$classPath);
?> 
Egal ob $classPath existiert oder nicht, file_exists liefert true und require_once liefert dann den fehler das die datei nicht gefunden wurde (wenn die datei nicht vorhanden ist). Warum funktioniert file_exists hier nicht? ich verstehs nich

Mfg, Riks
Riks ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.12.2006, 23:26  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Doch funktioniert, benutz realpath() auf $classPath.
Dann wird aus dem relativen Pfad ein absoluter gemacht und der stimmt entweder bei beiden oder bei keinen.
(wenn der Rückgabewert von realpath() leer ist, ist der Pfad falsch)

Es gibt noch eine weitere Möglichkeit, nämlich dass die Datei existiert, aber nicht lesbar ist.
Zergling-new ist offline  
Alt 06.12.2006, 00:59  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Zitat von Zergling
Es gibt noch eine weitere Möglichkeit, nämlich dass die Datei existiert, aber nicht lesbar ist.
Da bin ich nicht sicher, dafür gibts doch is_readable...
nikosch ist offline  
Alt 06.12.2006, 01:07  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Wobei bist du dir nicht sicher?

file_exists() prüft auf Existenz, is_readable() auf Existenz und Lesbarkeit.
Für den include() muss die Datei logischerweise existieren und lesbar sein.

Also kann es ja sein, dass file_exists() erfolgreich ist [Datei existiert], aber der include() fehlschlägt [Datei ist aber nicht lesbar].
Ist nur eine Theorie, im Normalfall stimmt einfach der relative Pfad nicht, da zuviele Dateien andere Dateien in anderen Ordner-Ebenen includen.
Zergling-new ist offline  
Alt 06.12.2006, 01:26  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ach so meinst du das. Wieder nur mit dem halben Auge hingeguckt. Dachte du meinst, dass file_exists für nicht-lesbare Dateien FALSE ergibt.
nikosch ist offline  
Alt 06.12.2006, 04:57  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

File_exists gibt (wie der Name schone sagt) nur die reine Exitenz der Datei wieder. Mehr nicht. Ist so, als wenn du einen Menschen anschaust, ob er da ist. Ob er Zigaretten verauft ist trotzdem offen
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 06.12.2006, 08:12  
Benutzer
 
Registriert seit: 03.08.2006
Beiträge: 49
Riks
Standard

Also wenn require_once einen Fehler ausgibt ist die Datei auf keinen Fall da, wenn sie da ist, gibts auch keine Probleme, deswegen war ich eigentlich der Meinung das der Pfad stimmen müsste. Mit realpath(); funktionierts jetzt aber Danke!

Mfg, Riks
Riks ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php file_exists funktioniert nicht, file_exists funktioniert nicht, file_exists, php file_exists true existiert nicht, file_exists gibt aus datei existiert, existiert aber nicht, file_exists immer true, php file_exits findet nicht, file_exists liefert true obwohl nicht vorhanden, file_exists zeigt datei nicht an, file_exists false obwohl datei existiert, file_exists php funktioniert nicht, php file_exists aber datei existiert, datei exisitert nicht php file_exists, require_once file_exists php, file_exists zeigt, dass datei nicht vorhanden ist, file_exists liefert immer false, require_once file_exists, php file_exists liefert nichts, file_exists relativer pfad, file_exists liefert

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:03 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.