Ankündigung

Einklappen
Keine Ankündigung bisher.

Quelltext vom Browser in eine Datei am Server speichen

Einklappen

Neue Werbung 2019

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

  • Quelltext vom Browser in eine Datei am Server speichen

    Hallo

    Vieleicht kann mir jemand helfen:

    Gebe eine Php-Seite mit aus Datenbanken zusammen gestellten Werten im Browser aus.
    Genau diesen Quelltext möchte ich gerne in einem von mir bestimmten Ordner am Server speichern um sie später weiterverwenden können.
    Ich meine den Text den man bekommt wenn man im Browser "Quelltext ausgeben" anklickt.
    Alex
    GC

  • #2
    Das ist der Text, den du mit PHP sendest.
    Je nach dem, wie die Ausgabe bei dir stattfindet, kannst du das damit http://www.php.net/manual/de/ref.outcontrol.php machen, oder du schreibst einfach alle Ausgaben, in eine Variable, die du ganz am Ende ausgibst und abspeicherst.
    [URL="http://php.net/manual/en/migration55.deprecated.php"]mysql ist veraltet[/URL] [URL="http://php-de.github.io/jumpto/mail-class/"]Mails senden: Ohne Probleme und ohne mail()[/URL]
    [PHP]echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>';[/PHP]

    Kommentar


    • #3
      Greif doch einfach über das HTTP-Protokoll darauf zu, zB

      PHP-Code:
      file_get_contents('http://www.example.org/seite.php'); 
      e/ die Variante von ChrisVA ist natürlich zu bevorzugen.. kannte diese Funktionen garnicht alle.

      Kommentar


      • #4
        http://phpforum.de/forum/showthread.php?t=272482
        http://www.php-resource.de/forum/php...speichern.html

        Bitte beachten: http://www.php.de/php-einsteiger/ann..._Multipostings

        Kommentar


        • #5
          Ich wußte nicht das ich nur in einem Forum meine Frage stellen kann.
          Also muß ich mich für ein Forum entschließen!
          Ich hoffe das ich wenigstens in diesem Forum weiter machen kann um mein Problem zu lösen!
          Alex
          GC

          Kommentar


          • #6
            Noch ist der Thread nicht geschlossen. Aber deine Antworten hast du ja im Grunde.

            Kommentar


            • #7
              Wurde doch schon alles gesagt: Entweder in ne Variable speichern oder die Ausgabe abfangen!

              Bisschen was muss man auch selber machen

              Kommentar


              • #8
                Ok, habe jetzt die Ausgabe abgefangen und jetzt müßte ja im Browser 2x "Hallo Franz" kommen!
                Kommt aber nur 1x!
                Also war nichts im Buffer!

                <?php
                ob_start();
                $Kommentar = ob_get_contents();
                echo "Hallo Franz";
                echo "<br>";
                echo $Kommentar;
                ob_end_flush();
                ?>

                Oder habe ich das falsch verstenden!
                Habe mir die info von dieser Seite geholt (nur einen Ausschnitt).

                http://www.hashbangcode.com/blog/sav...ctions-91.html
                Alex
                GC

                Kommentar


                • #9
                  Wobei ihm allerdings möglicherweise das Stichwort "caching" nicht ins Auge gefallen ist. DARUM geht's ihm ja. Und aus dem Umstand, daß er den Vorgang so gliedmaßenverrenkend zu beschreiben versucht, kann man schlußfolgern, daß ihm dieses Prinzip noch nicht als allgemein bekannt ist.

                  Und mit solchen Sachen wie Datei speichern und Output puffern tut er sich auch erstmal schwer. Eventuell ist doch ein kleiner Tutorial-Ansatz gestattet...

                  Zum Ansatz: Man puffert die PHP-Ausgabe, indem man zum Beispiel folgendes macht...
                  PHP-Code:
                  ob_start();

                  include 
                  $scriptfilename;

                  $htmldoc ob_get_contents();
                  ob_end_clean(); 
                  Damit hast Du das Dokument, das von der PHP-Datei, die hier im Beispiel per Variable "$scriptfilename" festgelegt wurde, in die Variable $htmldoc übernommen und kannst damit machen, was immer Du willst.

                  Zum Beispiel speichern in eine Datei und dann ausgeben in die Antwort an den Client:
                  PHP-Code:
                  file_put_contents($cachedir.$scriptname,$htmldoc);
                  echo 
                  $htmldoc
                  Ein bißchen mehr mußt Du organisieren, wenn der "$scriptname" kein einfacher Dateiname im Hauptverzeichnis des Servers ist. Zumindest könntest Du die Slashes in den Dateinamen in Unterstriche oder sowas ändern. Allein aus der Dateiablage eines Caches kann man eine Wissenschaft für sich machen.

                  Nun wirst Du allerdings die Schritte im Beispiel von "ob_start()" bis "file_put_contents" ja gerade überspringen wollen, falls die Cache-Datei für diese Anfrage schon existiert.
                  Dazu mußt Du halt das ganze Zeug in einen if-Block packen, dessen else-Zweig statt desen ausführt:

                  PHP-Code:
                  $htmldoc file_get_contents($cachedir.$scriptname); 
                  So, laß Dir das erstmal durch den Kopf gehen und melde Dich nochmal, wenn Du Deinen Cache um die Fähigkeit ergänzen möchtest, Dateien nach einer gewissen Zeit oder Cache-(über-)Füllung wieder rauszuschmeißen...!
                  HTML/CSS/PHP-Einsteiger-Kurs

                  Kommentar


                  • #10
                    Zitat von White-Gandalf
                    Wobei ihm allerdings möglicherweise das Stichwort "caching" nicht ins Auge gefallen ist. DARUM geht's ihm ja.
                    Jain. Es geht ihm darum, die Ausgabe in ein PDF umzuwandeln. Der Begriff Caching ist zudem gefallen – bloß nicht hier.

                    Und mit solchen Sachen wie Datei speichern und Output puffern tut er sich auch erstmal schwer. Eventuell ist doch ein kleiner Tutorial-Ansatz gestattet...
                    Gegen Engagement will ich nichts sagen.

                    Leuten, die zu einfachen Fragen mindestens vier Threads in mindestens drei Foren erstellen, mangelt es aber vor allem an Grundlagenwissen und am Gespür für den richtigen Umgang mit der Community. Das sollte man auch im Interesse des Fragestellers anmerken dürfen.

                    - http://www.php.de/php-einsteiger/489...nsammlung.html
                    - http://www.php.net/manual/en/book.outcontrol.php
                    - http://www.php.de/php-einsteiger/announcements.html

                    Der Threadersteller wurde über die Jahre forenübergreifend übrigens schon mehrfach auf all das hingewiesen.

                    Wie immer: Ich will das nicht dramatisieren, sondern vor allem erklären.

                    Kommentar


                    • #11
                      Zitat von mermshaus Beitrag anzeigen
                      Es geht ihm darum, die Ausgabe in ein PDF umzuwandeln
                      Hat er etwa in diese Richtung in einem der anderen beiden Foren diskutiert?

                      [s]<Naivitätsmodus>[/s]Dann sollten wir das aber auch mal verlinken, weil das ja sonst echt eine Verwirrung nicht nur bei den Helfern, sondern vor allem bei diesem Fragesteller erzeugt.[s]</Naivitätsmodus>[/s]

                      [s]Aber eher für wahrscheinlich halte ich, daß er den Begriff "PDF" irgendwo aufgeschnappt hat und als etwas ausgibt, von dem er vermutet, daß das irgendwie ins Thema passen würde...[/s]

                      OK, gebe mich geschlagen...
                      http://phpforum.de/forum/showthread....82#post1526857

                      Wobei mich diese Feststellung allerdings auch nicht befriedigt.
                      fender hat also Probleme damit, den Sinn dieser Funktionen überhaupt zu begreifen...
                      Da muß es doch einen Weg geben, ihm die Logik näherzubringen...

                      Zitat von fender Beitrag anzeigen
                      Ok, habe jetzt die Ausgabe abgefangen und jetzt müßte ja im Browser 2x "Hallo Franz" kommen!
                      Kommt aber nur 1x!
                      Also war nichts im Buffer!

                      <?php
                      ob_start();
                      $Kommentar = ob_get_contents();
                      echo "Hallo Franz";
                      echo "<br>";
                      echo $Kommentar;
                      ob_end_flush();
                      ?>
                      Nehmen wir das Ding mal schrittweise (OK?!) auseinander:

                      Zitat von fender Beitrag anzeigen
                      müßte ja im Browser 2x "Hallo Franz" kommen!
                      Guter Punkt: Du hast Dir für diesen Test ein Ziel gesetzt.
                      Versuchen wir, dorthin zu gelangen!

                      Zitat von fender Beitrag anzeigen
                      Kommt aber nur 1x!
                      Also war nichts im Buffer!
                      Noch ein guter Punkt! Offenbar funktioniert etwas nicht so, wie Du im ersten Anlauf erwartet hast. Es liegt also eine ANDERE Funktionsweise zugrunde. Die müssen wir (mußt DU!) bloß zu erklären versuchen...

                      Zitat von fender Beitrag anzeigen
                      <?php
                      ob_start();
                      $Kommentar = ob_get_contents();
                      echo "Hallo Franz";
                      echo "<br>";
                      echo $Kommentar;
                      ob_end_flush();
                      ?>
                      1. Was macht ob_start()?
                      2. Was macht ob_get_contents()?

                      3. Wo stehen diese beiden Aufrufe in Deinem Codeschnipsel?
                      4. Was steht zwischen diesen beiden?! Führe hier SÄMTLICHE Dinge auf, die bei Dir zwischen ob_start und ob_get_contents stehen!

                      5. Was also wird ob_get_contents liefern?
                      6. Was wird deshalb in $Kommentar stehen?

                      Sag mal was dazu!

                      Noch ein Hinweis: Du hast möglicherweise noch nicht verstanden, daß PHP eine ablauf-orientierte Programmierung darstellt. Was Du bei jeder einzelnen Anweisung erhältst, hängt von der konkreten Position dieser Anweisung im Quelltext ab!

                      Wenn also IRGENDWO sowas wie <php>$x = 10;</php> steht, dann bedeutet das nicht, daß überall und jederzeit im Programmablauf gelten würde, daß die Variable x den Wert 10 tragen würde.

                      Und wenn ein ob_get_contents zu einem Zeitpunkt bzw. an einer Stelle aufgerufen wird, wo VORHER NOCH NICHTS in den outbuffer hineingetan wurde (weil der nämlich unmittelbar vorher gerade erst von Dir geöffnet worden war), dann wird da auch tatsächlich nichts drin sein.

                      Noch ein P.S.: Falls Du mit diesem letzten Aspekt Schwierigkeiten hast: Das ist KEIN Verbrechen, mir sind in mehreren Jahren etliche schon echt lebenserfahrene (um nicht zu sagen alte, die vom Alter her eigentlich die Flexibilität des Denkens entwickelt haben müßten) Menschen begegnet, die das AUCH nicht von allein auf die Reihe gekriegt haben. Da mußt Du einfach mal mit etwas explizitem Üben durch - das ist nur eine Sache des bewußten Gewöhnens! Man IST aus der Schulzeit "axiomatisches Denken" gewöhnt (also daß eben dieses globale automatische Gelten von Zuweisungen gelten würde). Und wenn man HTML/CSS + PHP programmiert, muß man für HTML/CSS ja auch gerade dieses axiomatische Denken BEIBEHALTEN (DORT gilt das nämlich sehr wohl), während man es für PHP ABLEGEN muß - gleichzeitig im selben Kontext. Aber man kann sich dran gewöhnen! Am besten mit kleinen Übungsschritten!

                      So, jetzt warten wir mal ab...
                      HTML/CSS/PHP-Einsteiger-Kurs

                      Kommentar


                      • #12
                        Danke White-Gandalf

                        Ich habe es geschafft Dank White-Gandalf.
                        Der code:

                        <?php
                        ob_start();
                        ?>
                        <-Hier ist der Script der ausgegebenen php.Datei!!!!!!!!!!!!->
                        <?php
                        $inhalte = ob_get_contents();
                        $file = fopen("b.html", "w+");
                        fwrite ($file, $inhalte);
                        fclose ($file);

                        ob_end_flush();
                        ?>


                        Erst mal möchte ich mich bei Herrn White-Gandalf bedanken, das er sich die Zeit nimmt mir bei meinen Problemen zu helfen.
                        Da man im Forum schon darüber nachdenkt ob ich vielleicht ein Volltr.... oder ein "lernunwilliger" Comunity-Member bin, möchte ich, wenn es hier erlaubt ist etwas über meine Person schreiben.
                        Habe vor ca 10 Jahren im alter von 60 Jahren mit dem Programieren begonnen.
                        Über einige Bücher habe ich mir einige Grungkenntnisse angeeignet.
                        Es hat mir sehr viel Spass gemacht.
                        Wollte nie ein Profi-Programierer werden.
                        Mittlerweile verwalte ich meine ganze Lebensumgebung mit Datenbanken auf einer Webseite nur für mich und meine Familie.
                        z.B. Blutdruck, Gewicht, alle Vermietungen auf Gran Canaria (Wasser-Stromverbrauch-Komunidadskosten,Mietabrechnungen etc) meine Musiksammlungen(Auswahl+runterladen nur 3 per Monet etc).
                        Alles aber sehr "HANDWERKLICH". Habe immer nur das gelernt was ich für mein nächstes Projekt brauchte. Wenns komplizierter wurde bin ich in die Foren gegangen um mich schlau zu machen. Da das immer in einem Abstand von 1 bis 2 Jahren passiert, mußte ich mich immer wieder neu einarbeiten. Jetzt mit 70 Jahre ist man auch schon ein bißchen vergesslicher geworden.
                        Jetzt habe ich festgestellt, das fast alle "druckreifen" Dokumente wie Online-Fakturing etc mit PDF gemacht werden also habe ich wieder angefangen zu informieren und bin auf "OUTPUT-BUFFERING" gestoßen.
                        Dabei bin ich jetzt.

                        So jetzt zum Wandel in PDF mit "fpdf".
                        Schau ma mal wie weit ich komme ohne Hilfe!!


                        Ein paar Tage später............................
                        Es klappt, aber nicht wie ich es wollte!
                        Habe es erst mal im fpdf Forum probiert.
                        Hoffe das ist erlaubt.

                        http://www.fpdf.de/forum/showthread....6522#post16522

                        Wenns da nicht klappt werde ich beim Admin anfragen ob ich es hier posten darf!!!
                        Alex
                        GC

                        Kommentar


                        • #13
                          Da man im Forum schon darüber nachdenkt ob ich vielleicht ein Volltr.... oder ein "lernunwilliger" Comunity-Member bin
                          Das habe zumindest ich beides nie gesagt. Mein letzter Post richtete sich zudem vor allem an White-Gandalf. Das habe ich später per persönlicher Nachricht fortgeführt, weil ich es unangebracht fand, in deinem Thread schematisch über Threads wie diesen zu reden.

                          Dass du forenübergreifend bereits mehrfach auf die in den Forenrichtlinien vermerkten Hinweise zu Crosspostings hingewiesen worden bist, ist zudem eine Tatsache. Ich habe davon keine Wertung vorgenommen. Ich habe das aufgeführt, um den vorherigen Punkt zu untermauern, dass es bei dir an grundlegendem Verständnis für Sprache und Community hapert. Du brauchst nicht das kombinierte Wissen von drei Foren, um simple Fragen zu klären.

                          Benenne ich das nicht, werden deine Threads weiterhin so ablaufen, was – korrigier mich, wenn ich falsch liege – für alle Beteiligten nicht maximal befriedigend ist.

                          Der zentrale Aspekt bleibt:
                          [Crosspostings] empfinden viele Helfer als unfair, da sie oft unnötig Lösungsansätze posten, die bereits im anderen Forum gepostet wurden. […] Bitte betrachte diese Vorgehensweise nicht als Schikane, sondern als Mittel, den kostenlosen Einsatz der Helfer vor Missbrauch zu schützen.

                          Das ist aus der Standardantwort zu Crosspostings auf phpforum.de und wesentlich besser hätte ich das auch nicht ausdrücken können.

                          möchte ich, wenn es hier erlaubt ist etwas über meine Person schreiben
                          Vieles davon war mir bekannt, denn ich hatte deine übrigen Posts in anderen Foren überflogen. Ich respektiere es absolut, dass du dich – sorry, aber wie das allein schon klingt – in deinem Alter an so etwas heranwagst. Andererseits ist Alter für mich bei diesem Thema kein wesentliches Kriterium (vgl. Hackerethik). Ich bilde mir ein, auch einen 10-Jährigen hier im Forum nicht großartig anders zu behandeln als einen 30-Jährigen.

                          Weil ich nicht weiß, ob dieser Beitrag wieder falsch aufgefasst wird: Was mich betrifft, bist du in jedem PHP-Forum herzlich willkommen.


                          Edit:

                          Hier ein anderes aktuelles Beispiel für ein Crossposting:

                          - http://phpforum.de/forum/showthread.php?t=272546
                          - http://www.php.de/php-einsteiger/938...es-wortes.html

                          Meinst du nicht, dass es die Leute ärgern wird, wenn sie erfahren, dass sie unabhängig voneinander am selben Problem rumknabbern?

                          Kommentar


                          • #14
                            Ich versteh das jetzt natürlich besser warum ein Crossposting nicht erwünscht ist.Dachte nicht das sich in allen von mir bekannten Foren fast die gleichen Programierer sind.
                            Kommt von meinem "wirtschaftlichen" denken das, wenn man mehr Angebote einholt eine größere Möglichkeit auf Erfolg besteht!!
                            Werde es in Zukunft vermeiden oder zumindest den Admin fragen ob ich ein Thema posten kann das in einem anderen Foro nicht erfolgreich war.
                            Alex
                            GC

                            Kommentar


                            • #15
                              Dachte nicht das sich in allen von mir bekannten Foren fast die gleichen Programierer sind.
                              Das ist auch nicht der einzige Grund. Auch wenn andere am selben Problem schrauben (und der Threadstarter womöglich noch „sein“ Wissen zwischen den Foren ergänzt), ist das mehr als ärgerlich für die einzelnen Helfenden.
                              [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