tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
17
ZUGRIFFE
471
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Sasser Sasser ist offline Mitglied Smaragd
    Registriert seit
    Mar 2008
    Beiträge
    1.000
    Hallo!

    Ich gebe in einer Schleife ein paar Links aus und prüfe diese auf Erreichbarkeit. Allerdings wird mir überall Offline ausgegeben, bis auf die letzte Ausgabe. Bei der letzten Ausgabe wird immer Online ausgegeben. Versteht das jemand?

    PHP-Code:
    foreach ( file 'settings/projects.txt' ) as $project ) {
    $project  explode '|'$project );
    if ((@
    fopen $project [1], "r" ) == true)) {
    echo 
    "<img src='images/online.gif'>";
    } else {
    echo 
    "<img src='images/offline.gif'>";
    }

     

  2. #2
    Avatar von CookieBuster
    CookieBuster CookieBuster ist offline <?= "Hello World" ?>
    Registriert seit
    Sep 2008
    Ort
    Münsingen (BW)
    Beiträge
    420
    Blog-Einträge
    4
    Gib einmal aus, welche Datei immer versucht wird zu öffnen. Dann siehst du zumindest mal was probiert wird.

    Laut dem PHP Manual gibt fopen FALSE zurück, wenn das Öffnen fehlgeschlagen ist.
    Prüfe einmal auf != FALSE anstatt auf == TRUE
     
    There are only 10 types of people in the world — those who understand binary, and those who don't.

    Mach mal einer das Licht an, ich hör nix!

    Why is 6 afraid of 7? Because 7 8 9.

  3. #3
    Sasser Sasser ist offline Mitglied Smaragd
    Registriert seit
    Mar 2008
    Beiträge
    1.000
    Hmm das war es leider auch nicht...

    Ich denke mal, da ist ein Fehler welchen ich nicht sehe...
     

  4. #4
    Avatar von CookieBuster
    CookieBuster CookieBuster ist offline <?= "Hello World" ?>
    Registriert seit
    Sep 2008
    Ort
    Münsingen (BW)
    Beiträge
    420
    Blog-Einträge
    4
    Was sagt denn die Ausgabe von $project[1] ?
     
    There are only 10 types of people in the world — those who understand binary, and those who don't.

    Mach mal einer das Licht an, ich hör nix!

    Why is 6 afraid of 7? Because 7 8 9.

  5. #5
    Sasser Sasser ist offline Mitglied Smaragd
    Registriert seit
    Mar 2008
    Beiträge
    1.000
    Diese gibt Links im Format: "http://www.domain.de" aus.
     

  6. #6
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Wie ist denn die Einstellung von allow_url_fopen?
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  7. #7
    Sasser Sasser ist offline Mitglied Smaragd
    Registriert seit
    Mar 2008
    Beiträge
    1.000
    Beides auf ON! Habe grad extra in der phpinfo() nachgeschaut.

    Mich irritiert einfach, warum immer der letzte Link (obwohl dieser immer wieder ein anderer ist) als Online angezeigt wird und alle anderen als Offline!? Liegt das an der Schleife?
     

  8. #8
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Dann bauen wir das doch mal ein wenig um...

    PHP-Code:
    $projects file 'settings/projects.txt' );
    foreach ( 
    $projects as $project 
    {
        
    $prj  explode '|'$project );
        if ((@
    fopen $prj[1], "r" ) == true)) 
        {
            echo 
    "<img src='images/online.gif'>";
        } 
        else 
        {
            echo 
    "<img src='images/offline.gif'>";
        }

    Was sagt denn die Ausgabe?
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  9. #9
    Sasser Sasser ist offline Mitglied Smaragd
    Registriert seit
    Mar 2008
    Beiträge
    1.000
    Es ist immer noch der gleiche Fehler...

    Das hatte ich bereits vorher schonmal probiert, weil ich dachte dass ein Array oder String überschrieben wird. Ist aber leider nicht der Fehler...

    Funktioniert es denn bei dir?
     

  10. #10
    Registriert seit
    Mar 2004
    Beiträge
    1.856
    Blog-Einträge
    2
    Was passiert denn wenn du den Handler von fopen nimmst und einmal komplett ausliest? Eine Seite die einen HTTP-Statuscode liefert wird hier auf jeden Fall als Online angezeigt.
    Zum Prüfen ob eine Seite läuft, gab es schon einmal einen ausführlichen Thread.
     
    Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
    und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!


    MfG, Zod

    __________________
    rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)

  11. #11
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Ich bin heute auch leicht verwirrt. fopen() ist für diese Art von Untersuchung eigentlich nicht so gut geeignet. fsockopen() ist da viel schöner.

    So funktioniert es, musst es nur noch mal anpassen.

    PHP-Code:
    <?php

    $projects 
    = array('www.heise.de''www.google.de''www.tutorials.de');

    foreach ( 
    $projects as $prj 
    {
        if (
    fsockopen $prj80$errno$errstr) == true
        {
            echo 
    "<img src='images/online.gif'>";
        } 
        else 
        {
            echo 
    "<img src='images/offline.gif'>";
        }
    }  

    ?>
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  12. #12
    Sasser Sasser ist offline Mitglied Smaragd
    Registriert seit
    Mar 2008
    Beiträge
    1.000
    Danke für dein Beispiel! Das funktioniert!

    Aber warum funktioniert es in meinem Beispiel nicht?

    PHP-Code:
    foreach ( file 'settings/projects.txt' ) as $project ) {
    $project  explode '|'$project );
    if (@
    fsockopen $project [1], 80$errno$errstr) == true) {
    echo 
    "<img src='images/online.gif'>";
    } else {
    echo 
    "<img src='images/offline.gif'>";
    }

     

  13. #13
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Du musst das Protokoll des Links, also http:// vom Link entfernen.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  14. #14
    Sasser Sasser ist offline Mitglied Smaragd
    Registriert seit
    Mar 2008
    Beiträge
    1.000
    Hmm habe es nun entfernt, aber trotzdem in meinem Script keine Veränderung...

    PHP-Code:
    if (@fsockopen substr $project [1], '7' ), 80$errno$errstr) == true) {
        echo 
    "<img src='images/online.gif'>";
    } else {
        echo 
    "<img src='images/offline.gif'>";

     

  15. #15
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Dann das "@" wegnehmen, damit du auch mal Fehlermeldungen angezeigt bekommst und testweise die URL ausgeben, damit du siehst, ob sie evtl. immer noch Fehler aufweist.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

Ähnliche Themen

  1. Problem mit fopen
    Von 1uck3r im Forum PHP
    Antworten: 13
    Letzter Beitrag: 11.03.10, 10:41
  2. fopen problem
    Von Marco-P im Forum PHP
    Antworten: 9
    Letzter Beitrag: 12.07.08, 04:58
  3. fopen Problem
    Von Acriss im Forum PHP
    Antworten: 4
    Letzter Beitrag: 18.08.07, 13:41
  4. c - fopen Problem
    Von BadPhantom im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 14.06.05, 15:10
  5. Problem mit fopen()
    Von maltor im Forum PHP
    Antworten: 7
    Letzter Beitrag: 08.12.04, 19:58