-
30.03.10 14:55 #1
Hallo!
Um Traffic zu sparen, habe ich meine ganzen Bilder bzw. Grafiken extern auf "Server 2" gespeichert. Ist es per PHP irgendwie möglich herauszufinden ob ein Server ansprechbar ist und wenn nicht, Bilder dann von "Server 1" zu laden anstatt vom Nichtansprechbaren? Gibt es für solch eine Situation eine Art Ping-Funktion in PHP? Denn dann könnte ich das Ganze vermutlich sogar schon selbst mit if-Abfragen und Variablen lösen...
Gruß, unwohltaeter
-
30.03.10 15:22 #2
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Ob es eine bessere, schnellere oder elegantere Lösung gibt keine Ahnung:
Gruß ThomasPHP-Code:$server1 = "http://www.server1.de/";
$server2 = "http://www.server2.de/";
$dateiname = "bild.jpg";
IF (file_exists($server1 .$dateiname)) {
echo "<img src='" .$server1 .$dateiname ."'>";
} else {
echo "<img src='" .$server2 .$dateiname ."'>";
}
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
30.03.10 15:27 #3
Ich Hirn!
Danke für den Code - bin noch PHP-Anfänger und gerade erst am üben. Kannte die Funktion noch nicht.
-
30.03.10 15:40 #4
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Sorry, das was ich oben geschrieben habe funktioniert nicht weil mit der file_exists Funktion kein Zugriff auf Dateien auf einem "fremden" Server möglich ist.
Damit geht es aber:
PHP-Code:$server1 = "http://www.server1.de/";
$server2 = "http://www.server2.de/";
$dateiname = "bild.jpg";
$ok = @fopen($server1 .$dateiname,"r");
@fclose($ok);
IF ($ok) {
echo "<img src='" .$server1 .$dateiname ."'>";
} else {
echo "<img src='" .$server2 .$dateiname ."'>";
}
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
16.04.10 15:45 #5
-
16.04.10 15:58 #6
Habs zwar noch nie versucht, aber du könntest versuchen ob du mit fsockopen am HTTP-Port eine Verbindung zusammenkriegst.
Mein kleiner webstart Projektplaner:
http://178.77.101.236/ppws/
Ideen, Verbesserungsvorschläge, Bugsmeldungen und allg. Kritik erwünscht und erbeten.
Danke. :)
-
16.04.10 16:16 #7Leider sagen mir ein Großteil der PHP-Befehle noch gar nichts...bin noch PHP-Anfänger
-
16.04.10 16:24 #8
Und genau dafür gibt es zigtausende Seiten darüber.
Syntax:
Code :1
resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )
Beschreibung:
Code :1 2 3 4 5
Initialisiert eine Socket-Verbindung zu der in hostname angegebenen Ressource. PHP unterstützt Ziele im Internet und Unixdomänen, wie sie unter Liste der unterstützten Socket-Transporter beschrieben sind. Eine [url=http://at.php.net/manual/de/transports.php]Liste unterstützter Transportarten[/url] können Sie auch mittels [url=http://at.php.net/manual/de/function.stream-get-transports.php]stream_get_transports()[/url] ermitteln. Der Socket wird standardmäßig im Blocking Mode geöffnet. Sie können auf den Non-Blocking-Modus wechseln, indem Sie die Funktion [url=http://at.php.net/manual/de/function.stream-set-blocking.php]stream_set_blocking()[/url] nutzen.
Parameter-Liste
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
hostname Wenn Sie OpenSSL-Support mit einkompiliert haben, können Sie dem Parameter hostname entweder ein ssl:// oder ein tls:// voranstellen, um eine SSL- oder TLS-Verbindung aufzubauen, die via TCP/IP mit dem entfernten Server verbunden wird. port Die Portnummer. errno Sofern unterstützt, enthält der Parameter die Fehlernummer des Systemlevels, die beim Aufruf der connect()-Funktion auftrat. Wenn der Rückgabewert von errno 0 ist und die Funktion FALSE zurückgibt, ist dies ein Zeichen, dass der Fehler vor dem connect()-Aufruf auftrat. Dies ist meist der Fall, wenn es ein Problem beim Initialisieren des Sockets gibt. errstr Die Fehlermeldung als String. timeout Der Connection-Timeout in Sekunden. Hinweis: Wenn Sie einen Timeout für das Lesen oder Schreiben von Daten über den Socket setzen wollen, verwenden Sie [url=http://at.php.net/manual/de/function.stream-set-timeout.php]stream_set_timeout()[/url], da der timeout-Parameter von fsockopen() nur für das reine Konnektieren des Sockets gedacht ist.
Rückgabewerte
Code :1
Die Funktion fsockopen() gibt einen Zeiger auf eine Datei zurück, der zusammen mit den anderen Dateifunktionen (wie fgets(), fgetss(), fwrite(), fclose() und feof()) verwendet werden kann. [b]Wenn der Aufruf fehlschlägt, wird FALSE zurückgegeben[/b].
Fehler/Exceptions
Code :1
Wirft E_WARNING, wenn hostname keine gültige Domain ist.
Mein kleiner webstart Projektplaner:
http://178.77.101.236/ppws/
Ideen, Verbesserungsvorschläge, Bugsmeldungen und allg. Kritik erwünscht und erbeten.
Danke. :)
Ähnliche Themen
-
Bilder von Server zu Server kopieren über Webdav(Sardine)
Von catarina im Forum Java GrundlagenAntworten: 2Letzter Beitrag: 05.08.10, 15:52 -
PC als Server verwenden
Von JanoschART im Forum Hosting & WebserverAntworten: 20Letzter Beitrag: 16.03.08, 14:58 -
Server als PC verwenden
Von Html im Forum HardwareAntworten: 25Letzter Beitrag: 17.12.07, 15:15 -
Umleitung auf Backupseite falls Server nicht zu erreichen
Von SwingTänzer im Forum PHPAntworten: 6Letzter Beitrag: 06.01.06, 13:30 -
Router als Server verwenden
Von Mave16 im Forum NetzwerkeAntworten: 2Letzter Beitrag: 28.12.04, 22:53



1Danke

Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren