ohne xml-parser

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

  • ohne xml-parser

    PHP-Code:
    <?php
    $fp 
    "http...rdf";
    if (
    $datei fopen($fp"r")){
    while (!
    feof ($datei)){
    $inhalt fgets ($datei);
    echo (
    $inhalt);
    }
    }

    ?>
    das skript gibt die elemente der xml-datei aus.
    wie kann ich ne for schleife einbauen, die pro zeile die elemente der xml schreibt? u.z. $Daten[$i]

    ich hab das skript, mit dem ich herumprobiert hab nun nicht griffbereit, da es net funktioniert hab, und ich einige ansätze probier (wie auch nen thread weiter unten zu sehen ist).

    lg,
    KITT

  • #2
    ok, hier ein weiterer hinweis. für .csv-files funktioniert der code.

    dringende bitte. ich bräuchte ihn aber so umgeändert, so dass ich statt angabe des bugs.csv-files auf eine URL (rdf-file) verweisen kann, die auf gleiche art, wie das csv, ausgelesen werden kann.

    fgetcsv() kann ich ja nicht auf eine url anwenden.

    danke euch!

    vielleicht zur erklärung:
    die erste zeile der output-tabelle sind von mir ins deutsche übersetzte überschriften, die im URL-rdf drinnen stehen, und
    die weiteren zeilen im xml sollen dann in den weiteren zeilen der tabelle stehen.

    lg,
    KITT

    anbei der code:
    ----------------------------
    <html xmlns:v="urn:schemas-microsoft-com:vml"
    xmlns="urn:schemas-microsoft-comfficeffice"
    xmlns:w="urn:schemas-microsoft-comffice:word"
    xmlns="http://www.w3.org/TR/REC-html40">

    <head>
    <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
    </head>

    <body lang=EN-US style='tab-interval:36.0pt'>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    PHP-Code:
    <?php

    $Dateizeiger 
    fopen("bugs.csv""r"); //Zeile 20
    $Daten=fgetcsv($Dateizeiger1000",");
        
    $bugzilla_ID $Daten[0];
        
    $bugzilla_Sev $Daten[1];
          
    $bugzilla_Pri $Daten[2];
        
    $bugzilla_Plt $Daten[3];
        
    $bugzilla_Assignee $Daten[4];
        
    $bugzilla_Status $Daten[5]; 
        
    $bugzilla_Resolution $Daten[6];
        
    $bugzilla_Summary $Daten[7];

        
    $neu_bugzilla_Ueberschriften[0] = "ID";
        
    $neu_bugzilla_Ueberschriften[1] = "Schweregrad";
          
    $neu_bugzilla_Ueberschriften[2] = "Priorität";
        
    $neu_bugzilla_Ueberschriften[3] = "Plattform";
        
    $neu_bugzilla_Ueberschriften[4] = "zugeordnet zu";
        
    $neu_bugzilla_Ueberschriften[5] = "Status"
        
    $neu_bugzilla_Ueberschriften[6] = "Auflösung";
        
    $neu_bugzilla_Ueberschriften[7] = "Beschreibung";

        
    $bugzilla_ID_Laenge strlen($bugzilla_ID);
        
    $bugzilla_Sev_Laenge strlen($bugzilla_Sev);
        
    $bugzilla_Pri_Laenge strlen($bugzilla_Pri);
        
    $bugzilla_Plt_Laenge strlen($bugzilla_Plt);
        
    $bugzilla_Assignee_Laenge strlen($bugzilla_Assignee);
        
    $bugzilla_Status_Laenge strlen($bugzilla_Status);
        
    $bugzilla_Resolution_Laenge strlen($bugzilla_Resolution);
        
    $bugzilla_Summary strlen($bugzilla_Summary);

        
    $laengen_array[0] = $bugzilla_ID_Laenge//zeile 40
        
    $laengen_array[1] = $bugzilla_Sev_Laenge;
        
    $laengen_array[2] = $bugzilla_Pri_Laenge;
        
    $laengen_array[3] = $bugzilla_Plt_Laenge;
        
    $laengen_array[4] = $bugzilla_Assignee_Laenge;
        
    $laengen_array[5] = $bugzilla_Status_Laenge;    
        
    $laengen_array[6] = $bugzilla_Resolution_Laenge;
        
    $laengen_array[7] = $bugzilla_Summary;

    echo 
    "<table border=1>";
    $AnzahlDerFelder count($Daten);
    echo 
    "<tr>";
    for (
    $u 0$u<8$u++) {
        
        if ((
    $u == ) or ($u == 3) or ($U == 8)) {
                continue;
        } else {
            echo 
    "<th>";
            echo 
    $neu_bugzilla_Ueberschriften[$u]."&nbsp&nbsp&nbsp&nbsp";
            echo 
    "</th>";
        }
    }
    echo 
    "</tr>";
    echo 
    "halle";

    while((
    $Daten=fgetcsv($Dateizeiger1000","))!==FALSE) {
        echo 
    "<tr>";
        for(
    $i=0$i<8$i++) { 
            if ((
    $i == ) or ($i == 3) or ($i == 8)) {
                continue;
            } else if (
    $i == 7) {
                
            
            } else  { 
                echo 
    "<td>".$Daten[$i]."</td>";
            }
        }
        echo 
    "</tr>";
    }
    echo 
    "</table>";
    echo 
    "</p>";
    fclose($Dateizeiger);
    ?>
    </body>
    </html>

    Kommentar


    • #3
      Original geschrieben von KITT
      fgetcsv() kann ich ja nicht auf eine url anwenden.
      auf dateien aber genauso wenig ...


      aber fopen() kann - bei aktiviertem allow_url_fopen - ja auch ressourcen über URLs öffnen.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Original geschrieben von wahsaga

        aber fopen() kann - bei aktiviertem allow_url_fopen - ja auch ressourcen über URLs öffnen.
        danke! bin nun soweit:

        PHP-Code:
        <?php

        $Dateizeiger 
        fopen("http://...ctype=rdf""r"); //Zeile 20
        $Daten=fgets($Dateizeiger);

            
        $neu_bugzilla_Ueberschriften[0] = "ID";
            
        $neu_bugzilla_Ueberschriften[1] = "Schweregrad";
              
        $neu_bugzilla_Ueberschriften[2] = "Priorität";
            
        $neu_bugzilla_Ueberschriften[3] = "Plattform";
            
        $neu_bugzilla_Ueberschriften[4] = "zugeordnet zu";
            
        $neu_bugzilla_Ueberschriften[5] = "Status"
            
        $neu_bugzilla_Ueberschriften[6] = "Auflösung";
            
        $neu_bugzilla_Ueberschriften[7] = "Beschreibung";

        echo 
        "<table border=1>";
        $AnzahlDerFelder count($Daten);
        echo 
        "<tr>";
        for (
        $u 0$u<8$u++) {
            
            if ((
        $u == ) or ($u == 3) or ($U == 8)) {
                    continue;
            } else {
                echo 
        "<th>";
                echo 
        $neu_bugzilla_Ueberschriften[$u]."&nbsp&nbsp&nbsp&nbsp";
                echo 
        "</th>";
            }
        }
        echo 
        "</tr>";
        echo 
        "halle";

        //WIE KANN ICH IN DIESER WHILE-SCHLEIFE DIE EINZELNEN WERTE DURCHGEHEN? :(
        while(($Daten=fgets($Dateizeiger))!==FALSE) {
            echo 
        $Daten;

        }
        echo 
        "</table>";
        echo 
        "</p>";
        fclose($Dateizeiger);


        ?>
        ich bekomm nun in einer wurst das ganze präsentiert. brauch aber die einzelnen $Daten-werte, um das alles schön in einer tabelle präsentieren zu können. siehe Kommentar in meinem code.

        thnx.

        Kommentar


        • #5
          explode könnte dir helfen

          Kommentar


          • #6
            explode hab ich probiert...

            PHP-Code:
            <?php

            $Dateizeiger 
            fopen("http://...rdf""r"); //Zeile 20
            $Daten=fgets($Dateizeiger);

            while((
            $Daten=fgets($Dateizeiger))!==FALSE) {
                
            $Daten_Teile explode(" "$Daten);
                echo 
            $Daten_Teile[13];
            }    
            fclose($Dateizeiger);

            ?>
            leider sind die inhalte der xml-files auch sätze, und somit weiss ich nicht wonach ich explode() ausführen soll. explode (" ",..) verbindet die sätze, und das schaut auch mies aus.

            lg,
            KITT

            Kommentar


            • #7
              dann sollte preg_match dir helfen.

              Kommentar


              • #8
                wonach soll ich denn suchen mit pre_gmatch?

                Kommentar


                • #9
                  hier nach Ziel: Inhalte zwischen den xml-Tag auslesen. Andererseits, warum ohne XML-Parser? Selbst mit RegEx ist es sehr mühsam. Lohnt sich das?

                  Kommentar


                  • #10
                    ok, thnx, ich schau mir den link mal an!

                    Original geschrieben von asp2php
                    [Andererseits, warum ohne XML-Parser?
                    weil ich zu dumm dafür bin!
                    DOM check ich net, und tutorial hab ich auch keins dazu gefunden. ich verschei** schon ne woche damit

                    lg

                    Kommentar


                    • #11
                      RegEx ist IMHO sogar komplizierter, schau dir den Link mal an: http://www.php.net/manual/en/ref.xml.php insbesondere die Bsp. und die User Contributed Notes sind sehr hilfreich.

                      Kommentar


                      • #12
                        kewl, danke! glaub auf der page war ich noch net!
                        hoffentlich werd ich draus schlauer!
                        sonst muss ich halt dich wieder nerven

                        lg

                        Kommentar


                        • #13
                          muss noch dazusagen, dass ich nur php4.x installiert hab mit xml-extensions. sind bei dem link, den du mir geschickt hast, eh alle funktionen bei mir einsetzbar?

                          lg

                          Kommentar


                          • #14
                            was ist denn der vorteil/nachteil von:

                            XML_create_parse() und DOM?

                            lg
                            KITT

                            Kommentar

                            Lädt...
                            X