[PHP]: HTML-Tags in ein Array schreiben (ähnlich wie "xml_parse_into_struct")

  • #1
O

Octavian

Neues Mitglied
Themenersteller
Dabei seit
24.03.2005
Beiträge
3
Reaktionspunkte
0
Ort
Rodewisch
Hallo alle miteinander,

das ich ein Problem hab, brauche ich glaub ich nicht zu erwähnen, denn sonst wär ich ja nicht hier  ;)

Es geht um folgendes:

Ich möchte eine HTML-Datei in PHP einlesen und dann alle HTML-Tags mit ihren Attributen und Werten in ein Array schreiben.
Ich dachte erst es geht auch mit der Funktion xml_parse_into_struct(), da ja XML auch im Format <Tag> geschrieben ist. Da aber in den meisten HTML-Tags Leerzeichen vorkommen, fliegt PHP damit auf die Schnute  :(

Gibt es denn in PHP (Version 4.2.3) eine ähnliche Funktion die HTML-Tags auswerten kann?? Für Tipps und Hilfe bin ich sehr dankbar!!

Hier nochmal eine Erklärung zu xml_parse_into_struct:

Code:
xml_parse_into_struct -- Parse XML data into an array structure
Description
int xml_parse_into_struct ( resource parser, string data, array &values [, array &index])


This function parses an XML file into 2 parallel array structures, one (index) containing pointers to the location of the appropriate values in the values array. These last two parameters must be passed by reference. 

Below is an example that illustrates the internal structure of the arrays being generated by the function. We use a simple note tag embeded inside a para tag, and then we parse this an print out the structures generated: 


$simple = <para><note>simple note</note></para>;
$p = xml_parser_create();
xml_parse_into_struct($p,$simple,$vals,$index);
xml_parser_free($p);
echo Index array\n;
print_r($index);
echo \nVals array\n;
print_r($vals);
 


When we run that code, the output will be: 

Index array
Array
(
    [PARA] => Array
        (
            [0] => 0
            [1] => 2
        )

    [NOTE] => Array
        (
            [0] => 1
        )

)

Vals array
Array
(
    [0] => Array
        (
            [tag] => PARA
            [type] => open
            [level] => 1
        )

    [1] => Array
        (
            [tag] => NOTE
            [type] => complete
            [level] => 2
            [value] => simple note
        )

    [2] => Array
        (
            [tag] => PARA
            [type] => close
            [level] => 1
        )

)

mir wäre es am liebsten wenn man das ganze auch mit HTML machen kann...

Vielen Dank schon mal und viele Grüße

Octavian
 
  • #2
Hi

Das sollte gehen wenn du XHTML konformes HTML verwendest.

Gruß, Michael
 
  • #3
So,

die Lösung des Problems war doch einfacher als gedacht...

Die Werte der Attribute müssen, wie in reinem HTML, in Anführungszeichen stehen (z.B. <table width=100 border=0 cellspacing=0 cellpadding=0>) dann klappt's auch mit der Funktion xml_parse_into_struct().
Sobald aber Attribute ohne Anführungszeichen in einem HTML-Tag stehen (z.B. <table width=100 border=0 cellspacing=0 cellpadding=0>), bricht die Funktion ab und nix kommt dabei raus...

Mfg Octavian
 
Thema:

[PHP]: HTML-Tags in ein Array schreiben (ähnlich wie "xml_parse_into_struct")

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben