Ankündigung

Einklappen
Keine Ankündigung bisher.

Gibt es für "preg_match_all" eine maximal Grenze an Array Einträgen

Einklappen

Neue Werbung 2019

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

  • Gibt es für "preg_match_all" eine maximal Grenze an Array Einträgen

    Ich lese einne sehr sehr sehr sehr große xml Datei aus.

    Bei dieser möchte ich per preg_match_all alle "<row>" Tags zählen.

    Nur funktioniert dass nicht es werden nur 33769 Tags erkannt es sind aber noch deutlich mehr. insgesamt: 159768

    Warum erkennt er nicht alle was gibt es für alternativen um alle Tags zu zählen?

  • Darknet
    antwortet
    Okay jetzt funktioniert die Datei.

    Die Datei war kaputt

    Einen Kommentar schreiben:


  • Darknet
    antwortet
    Aber dass Problem muss irgendwie im Script liegen habe dass ganze jetzt per XML Reader ausgelesen und er bricht an der selben Stelle ab.

    Beim öffnen der Datei im Browser erhalte ich da eine Fehlermeldung:

    PHP-Code:
    XML-VerarbeitungsfehlerUngeschlossenes Token
    Adresse
    :  www.meine-adresse.de :-)
    Zeile Nr742927Spalte 57:    <field name="filename">33485e0634413abe16daec943a79c3ff</fie 
    Aber es ist an dieser Stelle alles inordnung:

    PHP-Code:
     <row>
        <
    field name="id">8361009</field>
        <
    field name="gallery_id">673246</field>
        <
    field name="title"></field>
        <
    field name="position">6</field>
        <
    field name="filename">ef55c9be29b6c04a3889af7afd22ab42</field>
        <
    field name="comments">0</field>
        <
    field name="state">1</field>
        <
    field name="comments_mod">0</field>
        <
    field name="ratings_count">0</field>
        <
    field name="created">2010-11-08 10:28:30</field>
        <
    field name="v3_id" xsi:nil="true" />
        <
    field name="v3_typ">0</field>
        <
    field name="v3_filename" xsi:nil="true" />
        <
    field name="last_comment_id">0</field>
        <
    field name="nameplates">0</field>
        <
    field name="view_count">89</field>
        <
    field name="width">1600</field>
        <
    field name="height">1063</field>
        <
    field name="comments_closed">0</field>
      </
    row>

      <
    row>
        <
    field name="id">8361010</field>
        <
    field name="gallery_id">673246</field>
        <
    field name="title"></field>
        <
    field name="position">7</field>
        <
    field name="filename">33485e0634413abe16daec943a79c3ff</field>
        <
    field name="comments">0</field>
        <
    field name="state">1</field>
        <
    field name="comments_mod">0</field>
        <
    field name="ratings_count">0</field>
        <
    field name="created">2010-11-08 10:28:35</field>
        <
    field name="v3_id" xsi:nil="true" />
        <
    field name="v3_typ">0</field>
        <
    field name="v3_filename" xsi:nil="true" />
        <
    field name="last_comment_id">0</field>
        <
    field name="nameplates">0</field>
        <
    field name="view_count">78</field>
        <
    field name="width">1067</field>
        <
    field name="height">1600</field>
        <
    field name="comments_closed">0</field>
      </
    row>

      <
    row>
        <
    field name="id">8361011</field>
        <
    field name="gallery_id">673246</field>
        <
    field name="title"></field>
        <
    field name="position">8</field>
        <
    field name="filename">c7ec464722fe953536a33333858b84cd</field>
        <
    field name="comments">0</field>
        <
    field name="state">1</field>
        <
    field name="comments_mod">0</field>
        <
    field name="ratings_count">0</field>
        <
    field name="created">2010-11-08 10:28:38</field>
        <
    field name="v3_id" xsi:nil="true" />
        <
    field name="v3_typ">0</field>
        <
    field name="v3_filename" xsi:nil="true" />
        <
    field name="last_comment_id">0</field>
        <
    field name="nameplates">0</field>
        <
    field name="view_count">82</field>
        <
    field name="width">1600</field>
        <
    field name="height">1063</field>
        <
    field name="comments_closed">0</field>
      </
    row
    Und mit msxsl.exe ebenfalls gleiche Stelle geicher Fehler.

    Feherstelle in eine Extra XML Datei geschrieben kein Fehler.

    Einen Kommentar schreiben:


  • tr0y
    antwortet
    msxsl.exe ist ein command line tool, das parameter benötigt und aus der Kommandozeile von Windows ausgeführt wird ( oder einer Batch ).

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    http://homepages.ius.edu/rwisman/n34...SL%20Intro.htm

    erklär mal genau was bei übung 4 passiert.

    Einen Kommentar schreiben:


  • Darknet
    antwortet
    Ganz einfach daran dass wenn ich msxsl.exe öffne nichts passiert.

    Einen Kommentar schreiben:


  • tr0y
    antwortet
    Und wo klemmt es ?

    Einen Kommentar schreiben:


  • Darknet
    antwortet
    XSLT bekomme ich blöderweise nicht zum laufen.

    Einen Kommentar schreiben:


  • tr0y
    antwortet
    Zitat von Darknet Beitrag anzeigen
    Wie auch immer.
    Das Ziel ist die XML Datei kleiner zumachen um Sie mit Simple XML Auslesen zu können. Da Simple .
    Wenn du das nur einmal tun musst und nicht in sich wiederholenden Zeitabständen, kannst du doch hingehen und einen externen XSLT-Parser nutzen, der die Datenmenge auf mehrere kleine XMLs aufteilt.

    Windows bringt einen mit, er heißt MSXML und liegt bei der Standard-Installation von Windows als DLL vor. Hier kannst du den Command Line Wrapper herunterladen der Diese DLL für dich bedient.

    Du kannst damit anhand von XSL-Stylesheets dann kleinere XML Dokumente auf Basis deiner Wünsche extrahieren.

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Es gibt einige Limits. Speicherlimit/Limit von Array-Einträgen, Timeout und auch reguläre Ausdrücke sind bspw. in der Verschachtelungstiefe limitiert.

    Einen Kommentar schreiben:


  • Darknet
    antwortet
    Wie auch immer.
    Das Ziel ist die XML Datei kleiner zumachen um Sie mit Simple XML Auslesen zu können. Da Simple .

    Einen Kommentar schreiben:


  • Blackhead77
    antwortet
    Fail

    Einen Kommentar schreiben:


  • tr0y
    antwortet
    160k Tags sind für DOMDocument kein Problem vorausgesetzt die Kiste hat genug Speicher. Welches Ziel verfolgst du denn mit der XML ?

    Einen Kommentar schreiben:


  • Suralc
    antwortet
    Alternative:

    XMLReader und "per Hand" im XML navigieren. (open Methode verwenden!)

    XMLReader ermöglicht es dir(je nach Aufbau der Datei) größere XML-Dateien zu handhaben, als du mit traditionellen string funktionen oder einem DOM-Parser könntest.
    Ansonsten (google, keine eigenen Erfahrungen):

    https://github.com/prewk/xml-string-streamer

    Einen Kommentar schreiben:

Lädt...
X