Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

HTML-Code-Elemente in php zerlegen

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Kralle
PostRank 10
PostRank 10
Beiträge: 2925
Registriert: 08.04.2005, 00:47
Wohnort: Deggingen

Beitrag von Kralle » 20.01.2007, 01:32

Ich stehe momentan vor einem Problem, oder sagen wir besser Aufgabe.

Es geht darum einen HTML-Code der über PHP included wurde in seine Bestandteile zu zerlegen, sprich in seine einzelnen div-Container. Diese div-Container haben jeweils eine unique id.
Das Problem bei der Sache ist, daß hier divs oft verschachtelt vorliegen, also z. B.

Code: Alles auswählen

<div id="1">
   <div id="3">
      <div id="5">
      </div>
      <div id="2">
         <div id="4">
         </div>
      </div>
   </div>
</div>
Den div4 oder 1 jetzt auszulesen wäre ja kein Problem, weil keine substituierten Tags enthalten sind, bzw. sich das ganz einfach über preg_match und regexp auslesen läßt.
Aber wenn ich jetzt z. B. div Nr. 2 inkl. aller Inhalte haben möchte, stehe ich vor einem Problem.

Wie kann ich den Code so zerstückeln, daß ich exakt div2 erhalte inkl. aller sich öffnender und schließender Tags?

Der Code den ich include ist zwar valide, aber sagen wir mal "eigenwillig". Es gäbe auch noch andere Möglichkeiten auf dem Weg nach Rom, ich hätte aber gerne eine solche narrensichere Lösung, also praktisch die einzelnen divs nacher zerlegt nach id.

Irgendwie konnte ich da keinen Standard dazu finden.

Vorweg: ich habe die Erlaubnis den Code zu parsen :wink:
Zuletzt geändert von Kralle am 20.01.2007, 02:10, insgesamt 1-mal geändert.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Anonymous

Beitrag von Anonymous » 20.01.2007, 01:51

weitere Info per ICQ ermittelt:

zwischen den obigen divs können auch beliebige andere HTML Tags vorkommen, u.a. auch wieder div's....

macht die Sache nicht gerade einfach... ich denke da wird er einen richtigen parser brauchen, hab mal auf gut glück https://pear.php.net/package/XML_HTMLSax3 vorgeschlagen...

hat jemand weitere Ideen/Lösungsvorschläge...

Kralle
PostRank 10
PostRank 10
Beiträge: 2925
Registriert: 08.04.2005, 00:47
Wohnort: Deggingen

Beitrag von Kralle » 20.01.2007, 02:51

Mir ist noch was eingefallen. Die id über preg_match anzuspringen, und dann über eine while-Schleife mit Zähler öffnende und schließende divs zu zählen um dann beim letzten schließenden </div> zu schließen. Müsste eigentlich funzen. Morgen gleich mal testen :D
Außer jemand hat eine Standardlösung für solche Probleme. Ist ja eigentlich nichts ungewöhnliches.

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 20.01.2007, 12:18

Kralle hat geschrieben:mit Zähler öffnende und schließende divs zu zählen
Das ist der richtige Weg .... anders gehts nicht

Ich würd das Klassisch mit strcmp oder so machen ....
bzw
if ( $string[$i] == '<' )
.... jetzt prüfen ob ein tag wie gesucht, ob öffnent oder schliesend
.... bei öffnend $schachtel++
.... bei schliesend if ( $schachtel > 0 ) $schachtel--; else //ende mit Whileschleife

twitch
PostRank 9
PostRank 9
Beiträge: 1222
Registriert: 09.04.2005, 14:01

Beitrag von twitch » 20.01.2007, 12:19

nur mal ne Idee,
warum nicht mit preg_match("^(.*)<div(.*)>(.*)</div>(.*)$=msi",$inhalt,$array) alle divs in ein array schreiben ($array[3] wäre das mit der obigen regexe)und dann mit einer While-Schleife durchlaufen und dabei nach id=x suchen...

ist ungetestet und die regexe kann noch ein paar fehler enthalten

SEO - History, Tools, Videos, Downloads und mehr auf https://www.seo-ranking-tools.de/

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag