"We are back" « oc.at

php: file_exists auf home.pages.at?

Spikx 27.12.2004 - 22:48 1407 19
Posts

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
Folgende Situation: php file im root, im ordner images befindet sich die Datei 00.jpg. So funktionierts auf meinem wamp
Code: PHP
if (file_exists('./images/00.jpg')) echo "true";
aber nicht am home.pages.at Server (ja, bla, home.pages.at, wos bessas hob i hoit net ;P). Laut Kommentar auf php.net könnte das vielleicht was mitn unix system zu tun haben? Wenn ja, welche Funktionen muss ich verwenden und wie, damit ich dasselbe erreiche?
Oder wird des dort schlicht und einfach gar nicht funktionieren...
Bearbeitet von Spikx am 22.01.2005, 11:48

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
was is die fehlermeldung? oder wird einfach ned true ausgegeben

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
true wird net ausgegeben

Hm.. muss i vielleicht doch mit pathinfo() arbeiten? Allerdings hat es auch nicht funktioniert wie ich
Code: PHP
$path = pathinfo($_SERVER['PATH_TRANSLATED']);
$dir = $path['dirname']."/images/00jpg";
verwendet habe.
Bearbeitet von Spikx am 27.12.2004, 23:32

dio

Here to stay
Registered: Nov 2002
Location: Graz
Posts: 4938
Code: PHP
$path_to_file = $_SERVER['DOCUMENT_ROOT']."images/00.jpg";
if(file_exists($path_to_file)) echo "true";

EDIT:
Oder du bleibst bei der Art ohne Document Root:
Code: PHP
if(file_exists("images/00.jpg")) echo "true";

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
Funktioniert leider beides nicht. In $_SERVER['DOCUMENT_ROOT'] steht übrigens /home/pages/home/spikx (fois wos hüft...)

dio

Here to stay
Registered: Nov 2002
Location: Graz
Posts: 4938
Code: PHP
$path_to_file = $_SERVER['DOCUMENT_ROOT']."/images/00.jpg";
if(file_exists($path_to_file)) echo "true";
So funktioniert's ebenfalls nicht?

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
ah, blödsinn, sorry, $_SERVER['DOCUMENT_ROOT'] gibt .:/usr/local/lib/php/home/pages/home/ ohne username zurück.. und mit "/images..." funktionierts dann natürlich noch weniger: /home/pages/home//images/advemtd/00.jpg :)

edit: username manuell dazugeben nützt eh auch nix (guat i schätz, des wor eh eher.. logisch)
Bearbeitet von Spikx am 27.12.2004, 23:24

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
Hab's mit dieser Funktion nun hinbekommen:
Code: PHP
//--------------------------
function file_exists_incpath($file) {
//--------------------------
    $paths = explode(PATH_SEPARATOR, get_include_path());
 
    foreach ($paths as $path) {
        // Formulate the absolute path
        $fullpath = $path . DIRECTORY_SEPARATOR . $file;
 
        // Check it
        if (file_exists($fullpath)) {
            return true;
        }
    }
 
    return false;
}
http://aidan.dotgeek.org/lib/?file=...sts_incpath.php

Jehul

Big d00d
Avatar
Registered: Nov 2000
Location: lnz
Posts: 295
hast mal probiert, den ordner in einen realpath (voller name) umzuwandeln?

Code: PHP
$dir=realpath('./images/00.jpg');
echo $dir;
//und dann erst:
if (file_exists($dir)) echo "true";

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
Na, und aufgrund momentan fehlender Bandbreite mag i des jetzt auch net ausprobiern :)
Und da es mit dieser Funktion auch auf jedem Server funktioniert (bzw. funktionieren sollte), werd ich's auch dabei belassen.

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25539
diese funktion ist keinesfalls als ein allgeimeines file_exists zu verstehen. die sollte nur überprüfen ob ein bestimmtes (.inc).php file in den include verzeichnissen vorhanden ist. dh: ob include(_once) usw. auch wirklich dieses file inkludiert.

mach mal ein phpinfo und post mal die include_paths hier rein.

Zitat
Na, und aufgrund momentan fehlender Bandbreite mag i des jetzt auch net ausprobiern
bandbreite? 28,8er telmodem? O_o

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
Zitat von mat
diese funktion ist keinesfalls als ein allgeimeines file_exists zu verstehen. die sollte nur überprüfen ob ein bestimmtes (.inc).php file in den include verzeichnissen vorhanden ist. dh: ob include(_once) usw. auch wirklich dieses file inkludiert.
Hm... is doch wurscht, hauptsoch es funktioniert :P
Zitat von mat
mach mal ein phpinfo und post mal die include_paths hier rein.
jo, später vielleicht mal
Zitat von mat
bandbreite? 28,8er telmodem? O_o
Na, 64000 bps für 6 PCs

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25539
Zitat
Hm... is doch wurscht, hauptsoch es funktioniert :P
:bash:

sowas stimmt mich traurig. hab ich schon einmal erwähnt was ich von "blackbox" programmierung halte?

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
I'm sorry :|
include_path: .:/usr/local/lib/php
Aber ich sehe gerade, dass es doch mit "./images/..." funktioniert. Ähem.. naja, da dürfte mir wohl doch wo ein Fehler unterlaufen sein :)

//ah.. hatte irgendwann in weiterer Folge das ganze am Server mit einem file getestet, dass die Extension .JPG in uppercase hatte.. ich aber eben nur auf '00.jpg' getestet habe.. bla :D
Bearbeitet von Spikx am 28.12.2004, 19:21

dio

Here to stay
Registered: Nov 2002
Location: Graz
Posts: 4938
Zitat von Spikx
//ah.. hatte irgendwann in weiterer Folge das ganze am Server mit einem file getestet, dass die Extension .JPG in uppercase hatte.. ich aber eben nur auf '00.jpg' getestet habe.. bla :D
Dafür ghört dir wehtan ;).
@mat: so wie er die Funktion verwendet, ist es genau das, was du beschreibst - nur eben um ein Directory "tiefer" und eine andere File extension.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz