[grundlegende frage] warum xml und php?

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

  • [grundlegende frage] warum xml und php?

    Hallo,
    ich hätte einmal eine Frage. Ich arbeite nun schon lange mit php und mysql, aber habe noch nicht in php xml verwendet. was für einen vorteil sollte das haben?
    ich arbeite nur mit xml wenn ich mit flash und mysql arbeite. dann lass ich mit mit php eine xml-datei erstellen die ich dann in flash verarbeiten kann.
    aber einen sinn um in php xml-dateien zu verarbeiten seh ich irgendwie nicht

  • #2
    cent,

    der Sinn liegt eigentlich nicht in dem, was Du mit deiner Page machst, sondern darin dass andere möglicherweise von Dir Daten ziehen wollen, ohne eine Webseite bei Dir zu laden. Sie laden dann einfach die XML-Datei, die die Daten enthält.

    Das Aussehen der Webseite, die die Daten enthält und anzeigt, wird durch ein XSL-Stylesheet festgelegt.

    Das ist genau so wie bei HTML und CSS: der Inhalt wird weitestgehend von der Definition des Aussehens getrennt. Bei HTML und CSS wird die Contentverwaltung einfacher, wenn Du es mit vielen TEXTEN zu tun hast, da Du das Layout nur einmal definierst. Bei XML und XSL wird die Anzeige von TABELLEN einfacher.

    Stell Dir vor, Du hast eine Webpage, die Daten aus einer MySQL Datenbank anzeigt. Wenn Du diese Daten auch als Rohdaten zur Verfügung stellen willst, dann machst Du das so:

    1. php-Script (oder ein C++ deamon etc.) mit MySQL Abfrage(n) erstellt auf dem Server die XML Datei (zum Beispiel auch stündlich mit Cron, für Statistiken, falls unter LINUX).

    2a. Der Browser (oder ein fremder Robot, ein php-Script, usw) ruft jetzt entweder direkt die XML-Datei zum Download auf, das wären die Rohdaten.

    ODER:

    2b. Der Browser ruft XSL und XML zusammen auf, dann ist das Ergebnis eine HTML-Seite.

    Kommentar


    • #3
      Mhm. Ok. So gesehen hast du wiederum recht Dann muss ich mir das wohl mal genauer ansehen? Ist es denn kompliziert in PHP eine XML-Datei auszulesen?

      Kommentar


      • #4
        ich habs sowas bei mir im forum auch drin! Mit nem XML Skript werden dynamisch die aktuellen Themen auf anderen Seiten angezeigt! Ist viel besser als wenn ich die anderen auf meine DB zugreifen lasse
        mfg

        Kommentar


        • #5
          Ich durchstöber zur Zeit ein XML-Buch und im gesamtkontext betrachtet macht es auch Sinn

          Gibt es Tutorials zur Verarbeitung von XML-Dateien und PHP?

          Kommentar


          • #6
            Gibt es Tutorials zur Verarbeitung von XML-Dateien und PHP?
            bei "php4, grundlagen und profiwissen" von jörg krause gibt es ein kapitel über xml und php. bezieht sich hauptsächlich auf EXPAT, einen parser für xml-dokumente.
            gruss
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              @jensf: Wenn Du schon Dein Banner einbaust dann mach's als Link ... ich bin einfach zu faul dazu die URL abzutippen ...
              carpe noctem

              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

              Kommentar


              • #8
                Hallo,
                ich steh vor dem gleichen Problem und suche nach Tutorials. Bisher habe ich XML nur in Verbindung mit Flash MX verwendet und dort ist die Verarbeitung relativ einfach, da es viele Funktionen integriert sind.

                Allerdings erscheint mir bei PHP das alles ziemlich kompliziert zu sein. Gibt es keine einfache Möglichkeit mit PHP eine XML-Datei auszulesen?

                @jensf: mit was bzw. wie machst du das denn?

                Kommentar


                • #9
                  hier der code, ist aber nicht von mir da ich nicht ganz so fit in php bin

                  PHP-Code:
                  <?php

                    
                  // HTML-Tabelle beginnen
                  echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" bordercolor=\"#111111\" width=\"100%\" >";
                  Echo 
                  "<tr>";
                  echo 
                  "    <td width=\"337\" align=\"center\"><b><font face=\"Arial\" size=\"2\">Thema</font></b></td>";
                  echo 
                  "    <td width=\"55\" align=\"center\"><b><font face=\"Arial\" size=\"2\">Views</font></b></td>";
                  echo 
                  "    <td width=\"78\" align=\"center\"><b><font face=\"Arial\" size=\"2\">Antworten</font></b></td>";
                  echo 
                  "    <td width=\"266\" align=\"center\"><b><font face=\"Arial\" size=\"2\">Letzter Beitrag</font></b></td>";
                  echo 
                  "  </tr>";

                  $backend "http://www.study-talk.de/lastthread.php";

                  $fp     fopen($backend'r');
                  $xml    fread($fp10000);

                  $pattern "/<thread>(.*?)<\/thread>/is";
                  if (
                  preg_match_all($pattern$xml$matchPREG_SET_ORDER)) {
                   for(
                  $i 0$i count($match); $i++) {
                    
                  $thread $match[$i][1];

                    
                  $pattern "/<topic>(.*?)<\/topic>/i";
                    
                  preg_match($pattern$thread$tmatch);
                    
                  $topic $tmatch[1];

                    
                  $pattern "/<threadid>(.*?)<\/threadid>/i";
                    
                  preg_match($pattern$thread$tmatch);
                    
                  $threadid $tmatch[1];

                    
                  $pattern "/<boardid>(.*?)<\/boardid>/i";
                    
                  preg_match($pattern$thread$tmatch);
                    
                  $boardid $tmatch[1];
                    
                    
                  $pattern "/<starttime>(.*?)<\/starttime>/i";
                    
                  preg_match($pattern$thread$tmatch);
                    
                  $starttime $tmatch[1];
                    
                    
                  $pattern "/<lastposttime>(.*?)<\/lastposttime>/i";
                    
                  preg_match($pattern$thread$tmatch);
                    
                  $lastposttime $tmatch[1];

                    
                  $pattern "/<views>(.*?)<\/views>/i";
                    
                  preg_match($pattern$thread$tmatch);
                    
                  $views $tmatch[1];
                    
                     
                  $pattern "/<replycount>(.*?)<\/replycount>/i";
                    
                  preg_match($pattern$thread$tmatch);
                    
                  $replycount $tmatch[1];
                    
                    
                  $pattern "/<lastposter>(.*?)<\/lastposter>/i";
                    
                  preg_match($pattern$thread$tmatch);
                    
                  $lastposter $tmatch[1];
                    
                    
                  $pattern "/<lastposterid>(.*?)<\/lastposterid>/i";
                    
                  preg_match($pattern$thread$tmatch);
                    
                  $lastposterid $tmatch[1];
                    
                    
                  $pattern "/<starter>(.*?)<\/starter>/i";
                    
                  preg_match($pattern$thread$tmatch);
                    
                  $starter $tmatch[1];
                    
                    
                  $pattern "/<starterid>(.*?)<\/starterid>/i";
                    
                  preg_match($pattern$thread$tmatch);
                    
                  $starterid $tmatch[1];
                    
                  echo 
                  "  <tr> ";
                  echo 
                  "    <td width=\"337\"><a href=\"http://www.study-talk.de/thread.php?threadid=$threadid&boardid=$boardid\">$topic</a><br>erstellt am <i>".date("d.m.Y H:i:s"$starttime)."</i> von <a href=\"http://www.study-talk.de/profile.php?userid=$starterid\">$starter</a></td>";
                  echo 
                  "    <td width=\"55\">$views</td>  ";
                  echo 
                  "    <td width=\"78\">$replycount</td>";
                  echo 
                  "    <td width=\"266\"><i>".date("d.m.Y H:i:s"$lastposttime)."</i><br>von <a href=\"http://www.study-talk.de/profile.php?userid=$lastposterid\">$lastposter</a></td>";
                  echo 
                  "  </tr>";

                     }
                  }

                  echo 
                  "</table> ";
                  ?>

                  Kommentar


                  • #10
                    Achso man macht das in PHP einfach über preg_match ? Ich dachte es gibt so einen Universellen parser wie bei Flash mit Methoden zum Auslesen der Inhalte. Wenn ich dort z.B. eine XML-Datei habe die folgendermaßen aufgebaut ist:

                    PHP-Code:
                    //___XML:

                    <box>
                    <
                    news date="25.02.2003" location="Dortmund">Texthallo</news>
                    <
                    news date="12.02.2003" location="Hamburg">Noch nen TExt</news>
                    </
                    box
                    Lese ich mit ...

                    PHP-Code:
                    //___ActionScript:

                    oberKnoten = new XML();
                    oberKnoten this.lastChild;
                    datenListe oberKnoten.childNodes;
                    for (
                    zaehler=0zaehler<=datenListe.lengthzaehler++) {
                    newsDatum this.firstChild.childnodes[zaehler].attributes["date"];
                    newsLocation this.firstChild.childnodes[zaehler].attributes["location"];
                    newsText this.firstChild.childnodes[zaehler].firstChild.nodeValue;

                    ... die einzelnen Datensätze aus. Und so etwas logisch einfaches müsste es doch auch für PHP geben ?!? Ich hatte mir zwar das Kapital über XML in "php4, grundlagen und profiwissen" angesehen, aber wirklich weitergebracht hat es mich nicht. Zum einen fand ich das super kompliziert und zum anderen haben die sich dann auch ihren eigenen Parser gebaut, was ja im grunde wiederum auf preg_match hinausläuft.

                    Kommentar


                    • #11
                      Ich dachte es gibt so einen Universellen parser wie bei Flash mit Methoden zum Auslesen der Inhalte
                      naja, flash hat einen integrierten xml-parser, für php gibt es da auch einige, EXPAT ist nur einer davon. das tutorail in "php4, grundlagen und profiwissen" ist für den einstieg vielleicht nicht besonders geeignet, aber mit EXPAT machst du eigentlich das selbe wie in flash, nur das du mehr coden musst, dafür hast aber auch deutlich mehr möglichkeiten.
                      gruss
                      peter
                      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                      Meine Seite

                      Kommentar


                      • #12
                        Arbeitet man denn normalerweise mit EXPAT oder mit selbstgebauten Parsern wie z.B. der von jensf einer ist?

                        Gibt es für EXPAT ein Einführungstutorial, welches man verstehen kann?

                        Kommentar


                        • #13
                          guck dir mal das bei pear.php.net an da könnte was mit bei sein

                          Kommentar


                          • #14
                            Meinst du den XML_Parser ?? Bei mir kommt da nur "ga ga" raus wenn ich die Beispiele ausprobiere

                            Kommentar


                            • #15
                              weiß nicht, aber ich hab mir mal gedacht, da ist was sinnvolles mit bei ... ich hatte vorhin nicht so viel zeit zum gucken (war auf Arbeit)

                              Kommentar

                              Lädt...
                              X