fehlermeldung, wenn fgets()==FALSE?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • fehlermeldung, wenn fgets()==FALSE?

    hiho@ll

    woher krieg ich die fehlermeldung, wenn fgets(); FALSE liefert?

    hab nämlich grad das problem und ich weiß nicht woher das kommt, weil ich keine fehlermeldung hab

    error_reporting(E_ALL); is aktiviert
    u. ich verwende php5

    thx@ll

  • #2
    verstehe die frage nicht.

    wenn fgets() false liefert, baue eine abfrage ein und behandele diese situation "wie einen fehler", wenn du willst.

    Kommentar


    • #3
      gut dann stell ich die frage anders

      penizillin, ich habe code der fgets(); aufruft und FALSE liefert
      Warum liefert fgets(); false?

      Kommentar


      • #4
        zitat aus dem manual:
        If an error occurs, returns FALSE.

        Kommentar


        • #5
          lies dir meine frage nochmal durch

          Warum liefert fgets(); false?
          ich hinterfrage damit den grund
          und damit meine ich nicht, dass php es einfach so macht
          es gibt einen grund warum php false liefert
          welcher?

          Kommentar


          • #6
            Höchstwahrscheinlich übergibst du ungültige Parameter

            The file pointer must be valid, and must point to a file successfully opened by fopen() or fsockopen().
            Zeig doch mal denentsprechenden Code
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              ich maße es mir an, das zitat aus dem manual so zu deuten, dass.. achtung... ein fehler auftritt! oder glaubst du, es gibt andere, übernatürliche gründe (letzter donnerstag im monat)?

              vielleicht zeigst du besser ein wenig code.

              Kommentar


              • #8
                ok

                Code:
                $handle=fsockopen("unix:///tmp/sock.1",0);
                
                $tmp=fgets($handle);
                if($tmp==FALSE)
                 print("Woher kommt der fehler?");
                else
                 print("Juhu: $tmp");
                
                fclose($handle);
                @mrhappiness
                1. nein ich bin mir sicher der parameter ist absolut korrekt
                2. ich hab den fehler schon gefunden
                es war ein timeout

                @penizillin
                du scheinst immer noch nicht zu verstehen, das ich den Grund des fehlers wissen will
                stells dir so vor:
                du sitzt mit verbundenen augen auf einem stuhl
                plötzlich bricht der stuhl zusammen
                was war der grund?
                hat jemand den stuhl angesägt? warst du zu schwer? hat jemand mit roher gewalt nachgeholfen?

                jetzt für php:
                fgets(); liefert false
                was war der grund?
                ein timeout?
                ist die verbindung unterbrochen?
                hat die andere seite die verbindung geschlossen?

                egal ob ich nun den grund schon gefunden habe für mein spezifisches problem, die frage bleibt offen
                woher weiß ich den grund wenn fgets(); false liefert?

                Kommentar


                • #9
                  alles klar, jetzt ist die fragestellung völlig klar.

                  wie wäre es, wenn du weitere parameter von fsockopen() benutzst, um einen möglichen fehler bei der verbindung abzufangen? $handle lässt sich außerdem mit is_resource() kontrollieren.

                  Kommentar


                  • #10
                    naja, die fehler bei fsockopen hilft nur, wenn die verbindung gar nicht zu stande kommt, was aber z.B. bei mir der fall war
                    und is_resource funkt wahrscheinlich erst, wenn die andere seite die verbindung geschlossen hat

                    außerdem, ich hab selten progs gesehen, die vor jedem fgets(); ein is_resource verwenden
                    aber sicherer wärs, das ist richtig

                    und bei meinem timeout problem krieg ich leider keine fehlermeldung

                    ich mein z.B. java wirft glaub ich eine socketexception oder eine IOException
                    und in so einer exception steht dann errorcode und errorstring
                    z.B. wenns einen timeout gibt dann ist der errstr ungefähr "Timeout Limit exceeded" oder so

                    bei php scheint es sowas überhaupt nicht zu geben oder?

                    Kommentar


                    • #11
                      vielleicht lässt sich etwas mit http://de.php.net/manual/en/function...et-timeout.php basteln?

                      Kommentar


                      • #12
                        damit hats funktioniert
                        thx

                        Kommentar

                        Lädt...
                        X