Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Flash-Datei als base64-kodierten Stream einbinden

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Flash-Datei als base64-kodierten Stream einbinden

    Ich habe die Idee, eine Flashdatei in base64-kodierter Form in ein PHP-Skript einzubauen, das diese Datei auf Anfrage streamt. Ich bin mir nicht sicher, ob dieser Weg der richtige ist. Es ist eigentlich nur ein technisches Experiment, um PHP noch etwas weiter auszureizen. Worum es mir geht wird vielleicht durch folgenden Entwurf (game.php) deutlich:

    PHP-Code:
    <?php
      
    if (isset($_GET['getgame'])) {
        
    $game "RldTBXR0AAB4AAUUAAARMAAAGBcAQwIAAAAABv8JDgAAAAEAAQBECwYAAABAAAAAPw4KAAAAAQAB".
                
    "AEVtcHR5AP8JDgAAAAIAAQBECwYAAABAAAAAPw4KAAAAAQACAEVtcHR5AEQLBgAAAD8DjgAAAIgx".
                
    "AAYAbG9hZGVkAGdldEJ5dGVzTG9hZGVkAHRvdGFsAGdldEJ5dGVzVG90YWwAcGMAJQCWDQAIAAYA".
                
    "AAAAAAAAAAgBPR2WDQAIAgYAAAAAAAAAAAgDPR2WAgAIAByWAgAIAhxJEp0CAAUAgQIAAwCWCQAI".
                
    "BAdkAAAACAAcDJYCAAgCHA0YlgIACAVHHQA/DNIHAAADAJAAElVuc3RlYWR5IE92ZXJzdGVlcjIA".
                
    "ZgBoAIIAnQDHANYA7gAGARQBIwExAUMBYAFvAZABsQHNAe4BEgImAk4CcwKNAqcCywLzAhQDLQNO".
                
    "A3YDkgO4A9QD4wP3AxcEJgRHBF8EfASdBL4E0gTzBBAFKAVCBWMFjAWtBccFEAAQNSms12WbYmdm".
                
    "a2GcFKamexM8Nm7DPwpmABA1YmsAdiZ3ZnsM+6zQVlmwBsTW7M9hm3WaABA1amvNdlm3JnszW4zQ".
                
    "VqawBzxSgDcuHM6+ANxIAqQCZ9yZ7MzuM3ZZwBA1YmsAdiZ3ZnsM+6zQABA1YmqaeVmewzbLNuTP";
        
    header("content-type: application/x-shockwave-flash");
        
    $game base64_decode($game);
        
    // ich schätze, hier muss irgendwas hin, was ich noch nicht weiß
      
    } else {
        
    header("content-type: text/html; charset=utf-8");
        echo 
    "<object data='game.php?getgame' type='application/x-shockwave-flash' style='width:400px;height:300px'></object>";
      }
    ?>
    Der String in $game ist stark verkürzt, also nicht die gesamte Flashdatei. Natürlich kann ich die Flashdatei auch separat einbinden, aber ich würde gerne wissen, wie ich sie quasi in der PHP-Datei verstecken kann.

    Hat jemand eine Idee?


  • #2
    Der String in $game ist stark verkürzt
    Darin sehe ich das Problem. Wieso musst Du den Parser damit quälen?

    Und was soll dieses Verstecken bringen? Clientseitig ist doch alles wie gehabt?!
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Hey, danke für die Antwort mitten in der Nacht.
      Also einmal muss ich den Parser damit quälen, weil die Flashdatei eben so groß ist (etwa 30 kB). Das ist vielleicht eine Belastung für den Parser, aber mein Problem ist ja ein ganz anderes. Eben der fehlende Code, um das zum Laufen zu bringen. Warum das ganze? Na, das soll ein Easteregg werden, sonst könnte ich die Flashdatei ja auch offenkundig auf den Server packen. Deshalb...

      Kommentar


      • #4
        Easteregg für wen? Für die Admins? Wie gesagt - clientseitig ist das doch regulärer HTML-Code mit <object>-Tag und wird nicht anders wahrgenommen (allenfalls durch die Ressorce-URI, die auf ein Script zeigt.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Ja, mein Gott, es geht ja jetzt auch weniger darum, die Datei vor dem Geheimdienst zu verstecken, als vielmehr um die Idee, um die Frage nach der technischen Lösung, einfach so zum Spaß.

          Kommentar


          • #6
            Mag ja sein, ich versteh bloß den Zweck nicht. Aber lass uns das mal später weiterdiskutieren
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Also wenn es einen Zweck gibt, dann den, dass ich einfach eine Datei weniger in meinem Verzeichnis habe. Ich habe mir z.B. angewöhnt, kleine Grafiken, die man immer wieder braucht, direkt in das Skript einzubinden, und dann in diesem Stil aufzurufen:

              PHP-Code:
              <?php
                
              if (isset($_GET['getimage'])) {
                  
              $img =  "iVBORw0KGgoAAAANSUhEUgAAAA8AAAAMCAYAAAC9QufkAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A".
                          
              "/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kDEhMRJDXv2GsAAAJNSURBVCjP".
                          
              "BcFbb9JgAIDht+1HWVtglI4AO6hZnG7GQ1w8RhONFybeeGf8Ff4o73dp4kyWzRjNPMULzywTkQG6".
                          
              "spUCLVtb2vo8krAe7ly5tMq475GiIhl5Ut/GHPxgXvOJAwddChCBh6nI5CLo+wH9nIlYOnmSuVoN".
                          
              "3zhmHCRkp00qRpXrlYs8vneBspGCEkIUgmqAG/Jqc5sWU4h4NODYG0EmDxJIiozj9Phy0OXOmRKO".
                          
              "02RWU/D2D9n3wC+d50VL46MzQciAP3A5SkK8KCFnltDCMeFkSEGBOauMOPbwJYO9A4cvf36x8bXD".
                          
              "wZSFnMpZVJHFFDI1Q0fXdWRZxhQJlpQgijkoWCSV0+xFWb7u1NHxuLaoI7TIwZJMjlwHFJU4mUGP".
                          
              "+izqCXG7yfvtN+RnZpHmL7BglXhwu0Lx1CnagYe4NRvx6P4S8vGInMiiZHLIfRdjv0XzxQbj9j8G".
                          
              "k98kxTqBXsCfKjDo73GgZRAVacjVRYvIk4m8I1QlplCqQl5l/fU75hZWWFxaIVss0hiM+D4IcQsW".
                          
              "8fQ0QktldNXAVULUskm36/Js8yXL1QW6xXnKq3fZ+OeiyRpNO2DrY5NW0CGqzSPiSYp96LLnjGgd".
                          
              "jvAnOs8/txmFeQKzRiNVWd9tMT0z4dy5VW5Ul8n97vLTHSKUfI5Yz5OmJh27x9Nn20iTOe5VzjLs".
                          
              "NMiULdrBkA+7Q3palmsnFrh5eYa8PUY5oYgnf12PtfW3rG19on1kMPRiqlmZzp9fNPo2ddvmbzih".
                          
              "vlunt/uNjOTRtXf4D5YvDGL5+WY9AAAAAElFTkSuQmCC";
                  
              header('Content-Type: image/png');
                  
              $img imagecreatefromstring(base64_decode($img));
                  
              imagepng($img);
                  
              imagedestroy($img);
                } else {
                  
              header("content-type: text/html; charset=utf-8");
                  echo 
              "<img src='test.php?getimage' type='image/png' alt='' />";
                }
              ?>
              In diesem Beispiel wird mit den Funktionen imagecreatefromstring(), imagepng() und imagedestroy() der Stream erzeugt, wenn ich das richtig begriffen habe. Und genau sowas suche ich nun für Flash (oder beliebige andere Formate).

              Kommentar


              • #8
                PHP-Code:
                // ich schätze, hier muss irgendwas hin, was ich noch nicht weiß 
                Wie wärs denn mit einer Ausgabe des Inhalts?
                echo $game;

                Kommentar


                • #9
                  pack doch dein Flash einfach in einen nicht öffentlichen Ordner und zieh die Datei dann vom Script aus mit file_get_contents und anschließend einfach nur das header Zeugs + echo. Könntest du mit deinen Bildern genauso machen.
                  DevBlog|3D Online-Shopping|Xatrium

                  Kommentar


                  • #10
                    Ich habe mir z.B. angewöhnt, kleine Grafiken, die man immer wieder braucht, direkt in das Skript einzubinden, und dann in diesem Stil aufzurufen:
                    Also für mich ist das schlechter Stil. Es gibt gute Gründe, das nicht zu tun.
                    - Es verkompliziert die Scriptlogik
                    - Es belegt Parameter (Gefahr der Namenskollision), erst recht bei mehreren solcher Bilder in einer Datei
                    - Die Anwendung ist aufwendig (base64), fehleranfällig und inperformant
                    - Die Ressourcen sind schwer austauschbar
                    -- Du musst immer wieder an den Programmcode
                    -- Projektweite Änderungen betreffen u.U. mehrere Scripte, statt nur eine Ressource.
                    --

                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                    --

                    Kommentar


                    • #11
                      na ja, ich akzeptiere ja, dass es ein ganz schlechter programmier-stil ist. aber meine frage war auch gar nicht, ob das sinnvoll ist, sondern wie man es realisieren kann. wenn es technisch gar nicht geht, dann ist es eben so, damit kann ich leben. wenn es aber geht, dann würde ich einfach gerne wissen, wie. mehr will ich gar nicht. vielen dank schon mal für alle bemühungen.

                      @hpf:
                      echo $game
                      ja, genau, das ist die antwort, die ich brauchte. dass es so einfach sein könnte, darauf wäre ich nie gekommen. vielen dank!

                      Kommentar


                      • #12
                        Einen passenden Content-Type-Header solltest Du allerdings auch setzen.
                        --

                        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                        --

                        Kommentar


                        • #13
                          PHP-Code:
                          header("content-type: application/x-shockwave-flash"); 
                          ist der falsch?

                          Kommentar


                          • #14
                            Oh, den hatte ich übersehen vor lauter Flashcontent..
                            --

                            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                            --

                            Kommentar

                            Lädt...
                            X