Ankündigung

Einklappen
Keine Ankündigung bisher.

fopen - Inhalt vergleichen

Einklappen

Neue Werbung 2019

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

  • fopen - Inhalt vergleichen

    hi zusammen
    ich komme gerade aus dem js bereich hierher, da ich nen anderen Lösungsansatz habe:
    Also, ich möchte eine html datei überprüfen ob was geändert wurde. Ich hab das jetzt mal so gemacht:

    PHP-Code:
      $zahl 2;
      
    $count 1;
      while(
    $count $zahl)
      {



    if (
    file_exists('msg.html')) {
               
    $f fopen('msg.html',"a+");
            } else {
               
    $f fopen('msg.html',"w+");
            }
    sleep(1);
            if (
    file_exists('msg.html')) {
               
    $f2 fopen('msg.html',"a+");
            } else {
               
    $f2 fopen('msg.html',"w+");
            }

    if(
    $f2 == $f)
    {}
    else
    {
    echo 
    '<embed src="bling.wma" width="0" height="0">';
    }
    fclose($f);


        
    $count++;
        
    $zahl++;
      } 
    der sinn meiner Überlegung war der, dass ich den Inhalt der Datei "msg.html" aufrufe und eine sekunde später erneut aufrufe, aber unter einer anderen Variabel speichere und die beiden dann vergleichen.

    Jetzt funktioniert das nicht so ganz... es passiert einfach gar nichts...
    Hat jemand nen Tip für mich?
    thx

    lg befubo

  • #2
    Moin,

    du solltest den Inhalt erst mal auslesen.
    Also fread, fgets oder was auch immer.

    Falls du nur vergleichen willst OB was geändert wurde kannst du auch einfach:
    PHP-Code:
    $f md5_file($file);
    sleep(1);
    if(
    $f == md5_file($file)) {
    echo 
    "Datei ist gleich";

    cu
    Grüße
    Destruction
    "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

    Kommentar


    • #3
      warum so umständlich ..?
      PHP-Code:
      $c1 file_get_contens("file1.html");
      sleep(1);
      $c2 file_get_contens("file1.html");
      if (
      $c1 == $c2) {
          echo 
      "Keine änderungen";
      } else {
         echo 
      "Änderungen";

      EDIT: Da war werd schneller, und genau des mit md5 macht meiner Ansicht nur bei großen Dateien Sinn !!
      EDIT2: Verschroieben ...
      PHP-Code:
      if ( $humans >= ) {
         
      war ();

      Kommentar


      • #4
        Zitat von PhillKill12 Beitrag anzeigen
        warum so umständlich ..?
        PHP-Code:
        $c1 file_get_contens("file1.html");
        sleep(1);
        $c2 file_get_contens("file1.html");
        if (
        $c1 == $c2) {
            echo 
        "Keine änderungen";
        } else {
           echo 
        "Änderungen";

        EDIT: Da war werd schneller, und genau des mit md5 macht meiner Ansicht nur bei großen Dateien Sinn !!
        EDIT2: Verschroieben ...
        bei dir fehlt immer noch ein t ^^
        "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

        Kommentar


        • #5
          bei dir fehlt immer noch ein t ^^
          oh danke, hab mich im stress verschrieben ^^
          PHP-Code:
          $c1 file_get_contents("file1.html");
          sleep(1);
          $c2 file_get_contents("file1.html");
          if (
          $c1 == $c2) {
              echo 
          "Keine änderungen";
          } else {
             echo 
          "Änderungen";

          jetzt passt aber oda ..?
          lg phillkill12
          PHP-Code:
          if ( $humans >= ) {
             
          war ();

          Kommentar


          • #6
            Der Sinn beim verlgeichen ist, zwei potentiell unterschiedliche Quellen heranzuziehen. Warum nimmst du an, das eine HTML Datei auf dem Server von der einen auf die andere (Milli-)Sekunde geändert wird?

            Bitte erläutere deine Ziele näher. Was möchtest du erreichen?
            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

            Kommentar


            • #7
              Warum nimmst du an, das eine HTML Datei auf dem Server von der einen auf die andere (Milli-)Sekunde geändert wird?
              das stimmt nicht ganz, sleep(1); bedeutet eine Sekunde also 1000 Microsekunden pause bevor die Datei das z´weite ma geöffnet wird
              PHP-Code:
              if ( $humans >= ) {
                 
              war ();

              Kommentar


              • #8
                Ich frage mich was das nützen soll, eigentlich amcht das ja nur bei 2 verschiedenen Dateien Sinn, denn um das so zu machen muss das Script per Cronjob jede Sekunde ausgeführt werden.
                Dabei kann es zu Fehlern kommen und Glückwunsch dem Hoster, der deinen Traffic bekommt :s

                MfG

                Kommentar


                • #9
                  so, erstmal danke für die antworten
                  Der Grund:
                  Ich habe nen einfachen Webchat programmiert bei dem das Protokoll immer in einer html datei gespeichert wird und per js dann auf der Seite wiedergegeben wird. dadurch, dass ich es mit js abfrage, muss ich die seite nicht komplett reloaden. Jetzt möchte ich einen Ton abspielen lassen, wenn eine neue nachricht kommt.
                  Jetzt möchte ich jede sekunde (in diesem takt reloadet auch das Chat fenster) überprüfen, ob die html datei geändert wurde (sprich: jemand hat was geschieben) und dann lasse ich nen Ton abspielen...

                  Ich hatte noch keine Möglichkeit, die scripte zu testen, mache ich dann morgen, denke ich. ich werde auf alle fälle noch rückmeldung geben...

                  thx für eure Mühen

                  Kommentar


                  • #10
                    Abgesehen davon, dass Chats über HTTP sowieso nicht besonders performant sind, ist deine Vorgehensweise noch mal extra ungünstig.

                    Du solltest die Nachrichten nicht als komplette HTML-Datei speichern, die dann jedes Mal wieder neu übertragen werden muss.
                    Die Entscheidung, ob Daten aus Sicht eines anfragenden Clients neu sind und deshalb übertragen werden müssen, sollte der Server fällen - bspw. an Hand des Zeitpunktes der letzten neuen Nachricht, die der Client empfangen hat und bei seiner Anfrage, ob es was neues gibt, jedes Mal mitschickt.
                    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                    Kommentar


                    • #11
                      Ich empfehle AJAX und Datenbank, bzw. einfach eine IRC-Anbindung

                      Kommentar


                      • #12
                        nun, ihr müsst wissen, dass ich html ok kann, php mässig erfahren bin, javascript ein blutiger anfänger und von ajax kenn ich gerade mal den namen

                        Aber wenn ihr ideen habt wie und mir vllt. Seiten sirekt zeigen könntet, wo ich das entsprechende material kriege, danke ich natürlich. Wie gesagt, auf diesem Chat werden nie mehr als 5-8 Leute sein, wenn überhaupt. also muss das ganze nicht hochprofessionell sein

                        Kommentar


                        • #13
                          nun, ihr müsst wissen, dass ich html ok kann, php mässig erfahren bin, javascript ein blutiger anfänger und von ajax kenn ich gerade mal den namen
                          Dann lass es doch bitte. Installier Dir ne Fertiglösung oder schreib ein Gästebuch. F5 drücken ist jetzt auch nicht so schwer.
                          [COLOR="#F5F5FF"]--[/COLOR]
                          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                          [COLOR="#F5F5FF"]
                          --[/COLOR]

                          Kommentar

                          Lädt...
                          X