kostenloser Webspace werbefrei: lima-city


PHP: HTML Tags beenden

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    christian1603

    Kostenloser Webspace von christian1603

    christian1603 hat kostenlosen Webspace.

    Hallo LC,
    ich habe eine Funktion die einen String der Html enthält auf <small> und </small> durchsucht.
    Er zählt beides. Wenn dann mehr <small> als </small> vorhanden sind setzt er Automatich am ende des string die benötigte Anzahl an </small>'s :) Dies ist bestimmt nicht die beste Möglichkeit aber sie funktioniert.
    Nun möchte ich diese Funktion auf alle HTML Tags umwandeln. Er soll alles prüfen <egal was hier steht> </es muss auch wieder beendet werden>.
    Kann mit wer helfen?
    Hier meine Funktion:

    <?php
    	 			
      $Variable = "<small> hi "; //</small> fehlt
    
    			preg_match_all('/<small[^\>]*>/i', $Variable, $matches);
    	$td = count($matches[0]);
    	
    	preg_match_all("</small>", $Variable, $matches);
    	$std = count($matches[0]);
    
    	$differenz = $td - $std;
    	if ($differenz > 0) {
    		for($i = 1; $i <= $differenz; $i++) {
    			$Variable.="</small>";
    		}
    	}
    	echo"$Variable";
    ?>


    LG


    edit:
    Ich habe eine andere funktion gefunden. Die macht eigentlich genau das was ich will. Aber sie beendet z.b sowas nicht <h1 style=\"text-align: left;\">.


    Funktion:
    function closetags($html){
    //put all opened tags into an array
    preg_match_all("#<([a-z]+)( .*)?(?!/)>#iU",$html,$result);
    $openedtags=$result[1];
    
    //put all closed tags into an array
    preg_match_all("#</([a-z]+)>#iU",$html,$result);
    $closedtags=$result[1];
    $len_opened = count($openedtags);
    
    //all tags are closed
    if(count($closedtags) == $len_opened){
    return $html;
    }
    $openedtags = array_reverse($openedtags);
    
    //close tags
    for($i=0;$i < $len_opened;$i++) {
    if (!in_array($openedtags[$i],$closedtags)){
     $html .= '</'.$openedtags[$i].'>';
    } else {
     unset($closedtags[array_search($openedtags[$i],$closedtags)]);
    }
    }
    return $html;
    }

    von: http://www.ozzu.com/de/programmierung-forum/php-automatisches-schlieszen-html-tags-t73935.html

    Beitrag zuletzt geändert: 24.6.2011 21:36:24 von christian1603
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. $regex = "/<\/?\w+((\s+(\w|\w[\w-]*\w)(\s*=\s*(?:\".*?\"|'.*?'|[^'\">\s]+))?)+\s*|\s*)\/?>/i";


    Ich würde aber eher mit DOMDocument oder so arbeiten.
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!