Is_File auch mit URL's?

B

ByeBye 8492

Moinsen, ich bin gerade dabei mir ein Downloadsystem zu entwicklen
nun habe ich eine Frage, ich will die funktion

is_file() oder file_exists() benutzen,


die klappen aber nicht :(, als Pfad den ich verwende benutze ich dann z.b.

is_file(http://217.160.136.62/mods4u/mod_anzeige.php?game=Morrowind);

das heisst die URL wird durch eine Variable die in der DB gespeichert ist, genommen.

Nun meine Frage das Downloadscript liegt im Order

http://217.160.136.62/mods4u/mods_download

ich will aber trotzdem pruefen koennen ob der Mod vorhanden ist, damit nicht soviele Deadlinks spaeter auftreten, kann man das mit einer PHP Funktion machen, wenn ja wie?

Das Problem ist in der DB sind schon viele Pfade gespeichert und ich will die nciht alle per Hand umaendern wollen.

mfG

Muffinmampfer
 
hi

du holst dir den pfad des downloads vorher aus der db und dann machst du:

file_exists($pfadausdb);

reicht nich auch nur exists() ? bin mir nich mehr sicher.
 
Re: hi

Original geschrieben von vip
du holst dir den pfad des downloads vorher aus der db und dann machst du:

file_exists($pfadausdb);

reicht nich auch nur exists() ? bin mir nich mehr sicher.

das klappt ja gerade nicht,

if(file_exists($pfadausdb))
{
echo "Ist da";
}
else
(
echo " Ist nicht da";
}

Die ausgabe ist immer nur "Ist nicht da" :(

klappt nicht, ich glaube das Script muss mit der Datei irgendwie in einem Order liegen, ich brauche das aber, das er die Existenz ueberprueft.
 
file_exists funktioniert nur mit lokalen dateien, urls kannst du hiermit checken:
PHP:
<?php
function urlExists($url)
{
    $url = ereg_replace("http://", "", $url);
    list($domain, $file) = explode("/", $url, 2);
    $fid = fsockopen($domain,80);
    fputs($fid,"GET /$file HTTP/1.0\r\nHost: $domain\r\n\r\n");
    $gets = fgets($fid, 1024);
    fclose($fid);
    if (ereg("HTTP/1.1 200 OK", $gets))     
        return TRUE;
    return FALSE;
}
?>

http://www.php.net/file_exists
 
hi

na wie sieht denn der inhalt aus, den du aus der db holst? is das ne volle url ala "http://www.deindomain.com/file.zip" oder isses ala "./files/file.zip" ?

das 2. sollte funktionieren. bei ersten kanns probleme geben.
 
Hm...
PHP:
if (@fopen($pfadausdb,"r")) {
  echo "Datei existiert.";
} else {
  echo "Datei existiert nicht.";
}
Sollte in beiden Fällen funktionieren :)


// edit: ')' vergessen :)
 
Zuletzt bearbeitet:
Original geschrieben von reima
Hm...
PHP:
if (@fopen($pfadausdb,"r") {
  echo "Datei existiert.";
} else {
  echo "Datei existiert nicht.";
}

Sollte in beiden Fällen funktionieren :)


Thx, darauf haette ich auch alleine kommen koennen ;).

Aber wofuer ist das @ vor dem Fopen?
 
Zurück