WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » Script zur Fehlerüberprüfung (ist für jeden Anfang-tag ein End-tag da?) » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von Austin Powers
@raiserle: Danke fürs suchen, aber ne grobe Erkärung tuts auch. Im Grunde kann ich ja programieren. ich weis halt nur nicht was.

@aykut: Das mit dem stack hab ich wohl nicht so ganz verstanden.
Aber was ich haben will ist kein Valides HTML
Im Beispiel benutze ich zwar HTML kommentare, aber ich möchte aber später die Überprüfung auf korrekte verschachtlung auch auf BBcodes anwenden.

So soll erkannt werden: (hier im Beispiel als BBcode)
Korrekt:
1: 
2: 
3: 
4: 
5: 
6:
vorher
[b]bla[/b]
[i]bla[/i]
[b][i]bla[/i]bla[/b]
[b][i]b[b][i]bla[/i]bla[/b]la[/i]bla[/b]
nachher

nicht korekt:
1: 
2: 
3: 
4: 
5: 
6:
vorher
[b]bla // ende fehlt
bla[/i] // anfang fehlt
[b][i]blabla[/b][/i] // verschachtelung falsch
ohne beispiel // ein mischung aller fehler bei komplexer verschatelung
nachher

Aber ich glaub ich ignoriere erstmal das bei meinen Lösungsansätzen
der äußerste und nicht der innerste als fehlerhaft markiert wird. Wahrscheinlich ist eine Unterscheidung welcher der tags (innerster oder äußerster) falsch ist in diesem Fall gar nicht möglich.
Falls doch einer auf ne Lösung kommt: Bitte melde dich!
von aykut
Du könntest es eventuell mit einem Stack prorgrammieren:

Hier ein Bsp.

Schritt 1-3
3. <div>
2. <div>
1. <div>

Schritt 4
4. </div>
3. <div>
2. <div>
1. <div>

nach dem Schritt 4. sieht der Stack so aus
2. <div>
1. <div>

--
Du könntest aber auch fertiges Software dazu benutzen, wie XML Spy oder Dreamweaver.
Oder Du gibst den Inhalt des HTML Codes in die folgende Webseite ein.
http://validator.w3.org/ "Validate by Direct Input"
von raiserle
wenn ich den code fnde poste ich dir ihn
hatte sowas vor langer zeit schonmal gemacht, aber oop
-------
leider nicht mehr gefunden
von Austin Powers
Ursprünglicher Post
Ich bin dabei ein eigenes Templates Script zu schreiben.
Bei den Überlegungen bin ich darauf gekommen das die Templates die das Script einlesen soll, eventuell fehlerhaft sind.
Als Beispiel mal folgenden Code: (mit Anmerkungen, sprich alles was nach einem // steht, steht nicht im Quellcode)
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23:
vorher
<!-- block: top -->//ebene 0 #1
   <div>
   <!-- block: top -->//ebene 1 #2
      <div>
      <!-- block: top -->//ebene 2 #3 == ungültig ende fehlt
         <div>                
            <!-- value: site_name --> : <!-- value: kat -->
         </div>
      </div>
   <!-- end block: top -->//ende ebene 1 #2
   </div>
   <!-- block: top -->//ebene 1 #4
      <div>
      <!-- block: tep -->//ebene 2 #5
         <div>
            <!-- value: site_name --> : <!-- value: kat -->
         </div>
      <!-- end block: tep -->//ende ebene 2#5
      </div>
   <!-- end block: top -->//ende ebene 1#4
<!-- end block: top -->//ende ebene 0 #1
nacher

Wie krieg ich nur das Script dazu Nummer (#)3 und nicht (den Anfang von) Nummer 1 zu ignorieren.
Einfach nur:
Bis zum Ende der Datei
finde ein gültigen Anfang- oder Ende Tag und merke dir diesen
wenn du ein Ende findest das gleich dem vorheriegen Anfang (art und typ) ist, markiere es als gültig (und verändere es damit so das es ermal nicht mehr als gültiger Tag gilt)
Am Ende der Datei beginne sooft von vorne wie gültige Schachteln gefunden werden.
geht nicht.
ARGH ich komm einfach nich drauf.

->>Edit: pseudocode (wie oben) reicht
um nochmal deutlich zu sagen: ich will zu folgendem ergebniss
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23:
vorher
<!-- block: top {valid} -->
   <div>
   <!-- block: top {valid} -->
      <div>
      <!-- block: top -->
      <div>                
         <!-- value: site_name --> : <!-- value: kat -->
      </div>
      </div>
   <!-- end block: top {valid} -->
   </div>
   <!-- block: top {valid} -->
      <div>
      <!-- block: tep {valid} -->
         <div>
            <!-- value: site_name --> : <!-- value: kat -->
         </div>
      <!-- end block: tep {valid} -->
      </div>
   <!-- end block: top {valid} -->
<!-- end block: top {valid} -->
nacher

und nicht:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23:
vorher
<!-- block: top -->
<div>
<!-- block: top {valid} -->
   <div>
   <!-- block: top {valid} -->
      <div>                
         <!-- value: site_name --> : <!-- value: kat -->
      </div>
      </div>
   <!-- end block: top {valid} -->
   </div>
   <!-- block: top {valid} -->
      <div>
      <!-- block: tep {valid} -->
         <div>
            <!-- value: site_name --> : <!-- value: kat -->
         </div>
      <!-- end block: tep {valid} -->
      </div>
   <!-- end block: top {valid} -->
<!-- end block: top {valid} -->
nacher

von Austin Powers
Ich versuche eine Überprüfung ob zu einem Anfang-tag ein End-tag da ist.
Fehlt ein Ende muß das innerste und nicht das äußerste ignoriert werden.
Mir fehlt einfach die Prüfmechanik.
Also wie und wonach ich prüfen muß.

---
MfG:Austin Power (Saturn Realm)
OMW! Zumindest sobald ich herausgefunden hab wo ich JETZT gerade bin.
<---------->
"Wenn Liebe die Antwort ist, könnst Du bitte die Frage neu formulieren?" ... Lily Tomlin
<---------->
code hier http://www.pastebin.com

Nach oben