Schließt PHP Dateien automatisch...

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

  • Schließt PHP Dateien automatisch...

    ...nach Ablauf eines Skripts?

    Z.B. Kann ich statt

    PHP-Code:
       if (($s fread($fp1)) !== "m") {
          
    fclose($fp);
          exit(
    "Expected \"m\" but got \"$s\".");
       } 
    dies hier schreiben:
    PHP-Code:
       if (($s fread($fp1)) !== "m") exit("Expected \"m\" but got \"$s\"."); 
    Das wäre etwas kürzer. Ich bin mir allerdings nicht sicher, ob PHP die Dateien von sich aus schließt, wenn das Skriptende erreicht ist.

  • #2
    Was ergab dein test?

    Kommentar


    • #3
      Wie kann ich denn testen, ob die Datei-Handles freigegeben wurden oder nicht? Rein syntaktisch ist das obige natürlich korrekt, ich möchte nur nicht, daß nach ein paar Wochen/Monaten plötzlich keine Datei-Handles mehr frei sind, weil alle von PHP aufgebraucht wurden.

      Kommentar


      • #4
        Re: Schließt PHP Dateien automatisch...

        Der Handle sollte automatisch geschlossen werden, wenn das Script beendet ist, ja.
        Die Userkommentare im Manual raten allerdings dazu, das Schließen explizit selber zu machen, da sonst im Fehlerfalle leicht eine korrupte Datei herauskommen kann:
        Generally, it's always a good idea to close a file when you're done with it. It's very easy for something to go wrong and corrupt a file that hasn't been closed properly.
        Das wäre etwas kürzer.
        Das Argument "ist kürzer" ist wenig relevant.
        Weiterer Satz aus dem gleichen Userkommentar:
        If you're concerned about efficiency, the overhead is negligible.
        Wenigstens bei Schreiboperationen würde ich also dringend empfehlen, die Datei anschließend richtig zu schließen.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Eine defekte Datei dürfte nicht zu befürchten sein, da es sich in diesem speziellen Fall um eine UDP-Verbindung handelt. (Falls man überhaupt von einer Verbindung sprechen kann - UDP ist schließlich ein verbindungsloses Protokoll.)
          PHP-Code:
          $fp fsockopen("udp://127.0.0.1"27015$errno$errstr);
          if (!
          $fp)
             echo 
          "Error $errno : $errstr";
          else {
             
          fwrite($fp"\\xFF\\xFF\\xFF\\xFFTSource Engine Query\\0");

             if((
          $s bin2hex(fread($fp4))) !== "ffffffff")
                exit(
          "Expected ffffffff (hex) but got $s.");

             if ((
          $s fread($fp1)) !== "m")
                exit(
          "Expected \"m\" but got \"$s\".");

             
          // [...] 

          Zuletzt geändert von pizzahut; 17.10.2005, 11:17.

          Kommentar

          Lädt...
          X