offenen span per php finden

  • Themenstarter Themenstarter Astror Enales
  • Beginndatum Beginndatum
A

Astror Enales

ich code grade ein syntax highlighting für ein forum und nun habe ich folgendes problem.

die farben regle ich über einen <span> container
nun gibt es aber auch den span class=comment_full und alles darin soll orange gefärbt werden...an sich nicht das problem doch wenn im span code wörter drinne sind färbt er die extra mit anderen farben.

wie kann ich per php rausfinden ob ein spann mit class=comment_full offen ist oder nicht?
 
das einfachste wäre wohl die anzahl an <span> geöffnet und </span> geschlossen zu zählen...
PHP:
$open = substr_count($text, "<span");
$open = substr_count($text, "</span>");
if($open != $close)
...
 
Zuletzt bearbeitet:
daher das zählen "<span" somit sind alle eingeschlossen.
welche mit id, class usw...
geschlossen werden ja alle gleich daher "</span>"

Du weißt zumindest schonmal ob ein Fehler vorliegt oder nicht!
 
habs jetzt so gelöst...vielen dank für den tipp!

PHP:
$code_length = strlen($code);
  $text_before = "";
  $text_middle = "";
  (int)$count = 0;
  while($count <= $code_length)
  {
    $text_before = $text_before."".$code[$count];
    if(("".$code[$count - 2].$code[$count - 1]) == "/*")
    {
      while("".$code[$count - 1].$code[$count] != "*/" && $count <= $code_length)
      {
        $text_middle = $text_middle."".$code[$count];
        $count++;
      }
      $text_middle = str_replace("<span class='class1'>", "", $text_middle);
      $text_middle = str_replace("<span class='class2'>", "", $text_middle);
      $text_middle = str_replace("<span class='class3'>", "", $text_middle);
      $text_middle = str_replace("</span>", "", $text_middle);
      $text_before = $text_before."".$text_middle."/";
      $text_middle = "";
    }
    $count++;
  }
 
Zurück