Dateien öffnen ...

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

  • Dateien öffnen ...

    Hi,
    îch folgenden Quellcode (Ausschnitt):

    case "vm": //Vermischtes
    $fp_vm = fopen("http://index_vm.html","a+b");
    $inhalt_vm = fread($fp_vm, filesize ($index_vm.html)) or die ('Cannot read vm.');
    $inhalt_vm = print "vm";
    fwrite($fp_vm,$inhalt_vm);
    fclose($fp_vm);
    break;

    Die Datei index_vm.html existiert noch nicht und somit gibt es einen Fehler. Wie bekomme ich das hin, dass er sie anlegt. Danach soll es so sein, dass wenn der Fall "vm" auftritt etwas an die Datei angehängt wird.
    Also, beim ersten Mal soll sie angelegt werden und danach soll immer etwas angehängt werden.

    Danke
    Manus manum lavat.

  • #2
    Was ist
    $inhalt_vm = print "vm";
    für ein Konstrukt? Sollte es nicht $inhalt_vm = "vm"; lauten oder überhaupt eliminiert werden?

    Kommentar


    • #3
      Joh,

      hast wohl recht. Hast du auch eine Lösung für das Hauptproblem ???
      Manus manum lavat.

      Kommentar


      • #4
        $fp_vm = fopen("http://index_vm.html","a+b"); <= was soll das "a+b" ??
        Schau mal z.B bei Selfphp in die Beschreibung der Funktion..

        Der Parameter mode legt fest, auf welche Weise und für welche Zugriffsarten die
        Datei geöffnet wird. Folgende Werte gibt es:
        a+ - Öffnet die angegebene Datei zum Lesen und Schreiben und positioniert den
        Dateizeiger auf das Ende der Datei. Sollte die angegebene Datei nicht existieren,
        so wird versucht sie anzulegen.

        =>$fp_vm = fopen("http://index_vm.html","a+");

        "b" gibt es gar nicht

        Kommentar


        • #5
          Original geschrieben von KinNeko
          "b" gibt es gar nicht
          Neko, du Kin

          Note: The mode may contain the letter 'b'. This is useful only on systems which differentiate between binary and text files (i.e. Windows. It's useless on Unix). If not needed, this will be ignored.



          CAT Music Files

          Kommentar


          • #6
            Mit http://index_vm.html wirst kein Glück haben, die Domain fehlt.
            Liest Du das File über HTTP oder direkt aus dem lokalen Filesystems des Webservers?

            http://www.php.net/manual/de/function.fopen.php

            'r' - öffnet die Datei nur zum Lesen und positioniert den Dateizeiger auf den Anfang der Datei.

            'r+' - Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei.

            'w' - Öffnet die Datei nur zum Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert wird versucht sie anzulegen.

            'w+' - Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert, wird versucht sie anzulegen.

            'a' - Öffnet die Datei nur zum Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.

            'a+' - Öffnet die Datei zum Lesen und Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.

            Ergo "a+" ist alles was Du machen mußt und es wird funzen, wenn Du das File im Filesystem des Webservers direkt anlegst und über die entsprechenden Rechte verfügst.

            Kommentar


            • #7
              case "vm": //Vermischtes

              if (!file_exists("http://index_vm.html")) {
              $ftmp = fopen("http://index_vm.html",'ab');
              fclose($ftmp);
              }

              $fp_vm = fopen("http://index_vm.html","a+b");
              $inhalt_vm = fread($fp_vm, filesize ($index_vm.html)) or die ('Cannot read vm.');
              $inhalt_vm = print "vm";
              fwrite($fp_vm,$inhalt_vm);
              fclose($fp_vm);
              break;

              CAT Music Files

              Kommentar


              • #8
                Joh,
                das weiss ich auch. Die Domäne habe ich auch per Hand herausgenommen. Also eigentlich steht dort
                $fp_vm = fopen("http://xxx.xxxxx.de/dpa-infoline/index_vm.html","wb");

                Ich könnte auch schreiben $fp_vm = fopen("index_vm.html","wb");

                Meine Frage nochmal, wenn die Datei nicht vorhanden ist, müßte er sie doch eigentlich anlegen, oder??

                Macht er leider aber nicht
                Manus manum lavat.

                Kommentar


                • #9
                  Ich rätsle: Wo kann sich das File "http://index_vm.html" physisch befinden? In wessen Webserver-Root?
                  Und das funktioniert wirklich ein File über "http://index_vm.html" zu schreiben?

                  Kommentar


                  • #10
                    'a+' - Öffnet die Datei zum Lesen und Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.

                    Kommentar


                    • #11
                      Aber nicht so - du kannst per HTTP doch nicht einfach auf nem Server irgendwelche Dateien verändern oder so...

                      CAT Music Files

                      Kommentar


                      • #12
                        Das meinte ich ja - das wäre ein Hammer, wenn dies gelänge. Wenn ich wüßte wie das ginge, würde ich sehr viel Geld damit machen können, damit ich es nicht tue *g*

                        Kommentar


                        • #13
                          Hi,
                          da habe ich ja ganz schön Verwirrung gestiftet, ich DEPP.

                          Aber nochmal:

                          Ich habe das jetzt abgeändert - es sieht jetzt so aus:

                          case "vm": //Vermischtes
                          if (!file_exists("index_vm.html")) {
                          $fp_vm = fopen("index_vm.html",'ab');
                          $inhalt_vm = fread($fp_vm, filesize(index_vm.html)) or die ('Cannot read vm.');
                          $inhalt_vm = "vm";
                          fwrite($fp_vm,$inhalt_vm);
                          fclose($fp_vm);

                          }

                          break;

                          Und ich bekomme jetzt diesen Fehler:

                          Cannot read vm.

                          Somit kann die Datei nicht gelesen werden

                          Wie ist das mit dieser Zeile
                          $inhalt_vm = fread($fp_vm, filesize(index_vm.html))
                          Die index_vm.html ist doch leer, also 0, kann es da vielleicht Probleme geben ???


                          Manus manum lavat.

                          Kommentar


                          • #14
                            $inhalt_vm = fread($fp_vm, filesize(index_vm.html)) or die ('Cannot read vm.');

                            fread gibt '' zurück, was NULL ziemlich ähnlich kommt -> die Anweisung nach dem OR wird ausgeführt.

                            CAT Music Files

                            Kommentar


                            • #15
                              Hi,
                              jetzt ist selbst mir endlich klar geworden, dass ich da gar nichts einlesen muss - ich Trottel - totaler Blackout ...

                              Trotzdem vielen Dank an die, die sich damit beschäftigt haben

                              Werde jetzt Churchill27 in DEPP umbennen
                              Manus manum lavat.

                              Kommentar

                              Lädt...
                              X