PHP: HTML Tags beenden
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
all
anzahl
arbeiten
array
code
differenz
ende
forum
funktion
helfen
http
machen
match
programmierung
string
umwandeln
variable code
variable echo
variable matches
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
$regex = "/<\/?\w+((\s+(\w|\w[\w-]*\w)(\s*=\s*(?:\".*?\"|'.*?'|[^'\">\s]+))?)+\s*|\s*)\/?>/i";
Ich würde aber eher mit DOMDocument oder so arbeiten. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage