tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von tombe
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
293
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von unwohltaeter
    unwohltaeter unwohltaeter ist offline Mitglied Silber
    Registriert seit
    Mar 2010
    Beiträge
    76
    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
     

  2. #2
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    Ob es eine bessere, schnellere oder elegantere Lösung gibt keine Ahnung:

    PHP-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 ."'>";

    Gruß Thomas
    unwohltaeter bedankt sich. 
    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.

  3. #3
    Avatar von unwohltaeter
    unwohltaeter unwohltaeter ist offline Mitglied Silber
    Registriert seit
    Mar 2010
    Beiträge
    76
    Ich Hirn!
    Danke für den Code - bin noch PHP-Anfänger und gerade erst am üben. Kannte die Funktion noch nicht.
     

  4. #4
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    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.

  5. #5
    Avatar von unwohltaeter
    unwohltaeter unwohltaeter ist offline Mitglied Silber
    Registriert seit
    Mar 2010
    Beiträge
    76
    Zitat Zitat von tombe Beitrag anzeigen
    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 ."'>";


    Funktioniert so alles bestens. Aber gehts nicht einfacher?
    Ich möchte den Code nämlich in 'ne PHP-generierte Stylesheet-Datei einbinden.
    Wär es da nicht möglich, nur den Server zu checken und 'ne Variable entsprechend zu ändern falls einer offline wäre?
     

  6. #6
    Kai008 Kai008 ist offline Mitglied Brillant
    Registriert seit
    May 2008
    Ort
    Brunn/Geb. (Niederösterreich)
    Beiträge
    944
    Blog-Einträge
    1
    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. :)

  7. #7
    Avatar von unwohltaeter
    unwohltaeter unwohltaeter ist offline Mitglied Silber
    Registriert seit
    Mar 2010
    Beiträge
    76
    bin noch PHP-Anfänger
    Leider sagen mir ein Großteil der PHP-Befehle noch gar nichts...
     

  8. #8
    Kai008 Kai008 ist offline Mitglied Brillant
    Registriert seit
    May 2008
    Ort
    Brunn/Geb. (Niederösterreich)
    Beiträge
    944
    Blog-Einträge
    1
    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

  1. Bilder von Server zu Server kopieren über Webdav(Sardine)
    Von catarina im Forum Java Grundlagen
    Antworten: 2
    Letzter Beitrag: 05.08.10, 15:52
  2. PC als Server verwenden
    Von JanoschART im Forum Hosting & Webserver
    Antworten: 20
    Letzter Beitrag: 16.03.08, 14:58
  3. Server als PC verwenden
    Von Html im Forum Hardware
    Antworten: 25
    Letzter Beitrag: 17.12.07, 15:15
  4. Antworten: 6
    Letzter Beitrag: 06.01.06, 13:30
  5. Router als Server verwenden
    Von Mave16 im Forum Netzwerke
    Antworten: 2
    Letzter Beitrag: 28.12.04, 22:53

Stichworte