file_exists() Remote
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
ave
code
datei
entsprechen
funktion
glauben
header
host
http
ordner
port
probieren
programm
server
status
testen
url
versuch
versuchen
-
Also der Titel ist Programm. Ich versuche zu prüfen, ob sich auf meinem eigenen Lima-Downloadserver eine Datei befindet, bzw. ob diese existiert. File_Exists() funktioniert hier aber nicht, obwohl es sich ya um meinen Ordner handelt. Wie kann ich trotzdem prüfen, ob da eine Datei vorhanden ist ?
Liebe Grüße
- VampireSilence -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Klingt vielversprechend. Wüsste aber ehrlich gesagt nicht, wie ich das anstellen sollte. Hast du da evtl nen konkreten Code für ?
Liebe Grüße
- VampireSilence -
Ave!
Versuchs mal damit:
function file_exists_remote($url) { $url_parts = parse_url($url); if (!$fp = @fsockopen ($url_parts['host'], isset($url_parts['port']) ? $url_parts['port'] : 80)) return FALSE; $request = 'HEAD '. (isset($url_parts['path']) ? $url_parts['path'] : '/'). (isset($url_parts['query']) ? '?'.$url_parts['query'] : ''). ' HTTP/1.1'."\r\n". 'Host: '.$url_parts['host']."\r\n\r\n"; fputs ($fp, $request); stream_set_timeout($fp, 5); $status = explode(' ', fgets($fp,128), 2); fclose($fp); return (isset($status[1]) ? $status[1] : FALSE); }
Ist jetzt komplexer als du wolltest, aber naja was man hat, hat man :)
lg
Beitrag zuletzt geändert: 5.5.2009 22:13:53 von zenks -
<?php $url = 'xyz.tld'; if (get_headers($url)[0] == HTTP/1.1 200 OK) { //existiert } else { //existiert nicht }; ?>
Müsste gehen!
@zenks: fsockopen geht denk ich bei lima nicht!
Beitrag zuletzt geändert: 5.5.2009 22:15:05 von cookies -
cookies schrieb:
get_headers($url)[0]
Soweit ich weiß geht das nicht... Arrayklammern direkt hinter der Funktion, musst glaub ich erst in einer Variable zwischenspeichern.
Außerdem sendet glaube ich nicht jeder Server HTTP/1.1
lg
Beitrag zuletzt geändert: 5.5.2009 22:16:57 von zenks -
Weiß ich auch nicht so genau, muss man mal probieren. Sonst halt:
<?php $url = 'xyz.tld'; $headers = get_headers($url); if ($headers[0] == HTTP/1.1 200 OK) { //existiert } else { //existiert nicht }; ?>
-
cookies schrieb:
Außerdem sendet glaube ich nicht jeder Server HTTP/1.1
Also das braucht wirklich kein bisschen flexibel sein, dass muss nur dem Lima-HTTP entsprechen. Werd dann eure Codes einfach mal testen, vllt klappts ya.
Liebe Grüße
- VampireSilence -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage