file_exists

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

file_exists

Beitrag von PhilippK »

Hallo zusammen,

seit ein paar Tagen werden bei einer Testinstallation von phpBB die Template-Dateien nicht erkannt. Nach einiger Überprüfung bin ich nun so weit, dass das ganze an der PHP-Funktion 'file_exists()' liegt.

Interessant dabei (wenn $file der Dateiname ist):
file_exists($file) findet die Datei nicht
file_exists(realpath($file)) findet die Datei

Das ganze unter PHP 4.2.3 auf Apache 2.0.40

Irgendwelche Ideen?

Gruß, Philipp
Benutzeravatar
biototo
Mitglied
Beiträge: 803
Registriert: 10.04.2002 09:51
Wohnort: Düren - Rheinland (zw Köln u. Aachen)
Kontaktdaten:

Beitrag von biototo »

file_exists() guckt nur in dem verzeichnis in dem das skript auch tatsächlich läuft, wenn du keine pfadangaben machst!!! wenn das skript im hauptverzeichnis läuft und die file_exists() in ein anderes verzeichnis machst ohne pfadangaben, dann funktioniert das nicht ...

bei deinem problem würde ich mir mal genau anschauen, was in $file drin steht ... dann sollte man das beheben können ...
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Biototo,

eigentlich sollte es genau wie in deiner Beschreibung funktionieren:

Code: Alles auswählen

<?php

$dir = './';
$file_dir = Array();

$handle = opendir($dir);
while (false !== ($file = readdir($handle)))
{
	if ($file != '.')
		$file_dir[] = $file;
}
sort($file_dir, SORT_STRING);

echo('<b>Verzeichnis: ' . $dir . '</b><br>');
foreach($file_dir as $file)
{
	echo($file);
	if (file_exists($file))
	{
		echo(' (existiert)');
	}
	echo(' - ');
	$file = realpath($file);
	echo($file);
	if (file_exists($file))
	{
		echo(' (existiert)');
	}
	echo('<br>');
}

?>
Die Dateien existieren immer nur bei der zweiten Überprüfung...

Gruß, Philipp
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

enthält denn include_path das aktuelle Verzeichnis (.)? Wenn nicht, versuch mal das mit ini_set hinzuzufügen.
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Erst mal Danke für die Unterstützung.

Also include_path ist eigentlich richtig gesetzt - an dem kann es auch nicht liegen...

Gruß, Philipp
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Scheint ein Fehler in PHP / Apache zu sein:
http://bugs.php.net/bug.php?id=19741

Hab zur Info 'nen neuen Beitrag aufgemacht:
http://www.phpbb.de/viewtopic.php?p=80120#80120

Gruß und nochmals Danke,

Philipp
Antworten

Zurück zu „Coding & Technik“