html tags entfernen und mehr !!!

HammerHe@rt

Erfahrenes Mitglied
so hab hier aus der db eine news mit html drinn...

diese soll als kurzversion ohne html auf der newsseite erscheinen und dann per link auf die komplette news linken...

habe aber folgendes problem...

in der news steht zbsp am anfang ne tabelle mit 2 zeilen...oben bild drinn und unten erläuternder Text...

bisher filter ich mit STRIP_Tags die html tags raus...dabei bleibt aber zbsp dieser erläuternde Text aus Zeile 2 im Text drinn und somit ist das Ergebnis nicht gerade immer lesenswert weil nicht im Zusammenhang...

Deshalb meine Frage gibt es ein Befehl oder eine Möglichkeit alles rauszufilter also von tag anfang bis tagende damit dieser Text auch entfernt wird...

habt ihr mich überhaupt verstanden ? *g*

mfG
Hammerhe@rt
 
ähhh nicht ganz ....

willst du nur tables rauswerfen (komplett)
oder noch andre sachen ??

bei nur tables würde ich über strpos nach denken

suchst die pos von <table und von
</table>

und löscht alles dazwischen
 
jo das wär perfekt...weil dann der text in der 2.zeile auch weg wär...wenn ichs vorschalte...

kannst ma code posten plz wies auszuschauen hätte wenn von <tabl....bis /table> ich alles rausfiltern kann was in dem db text steht?

und wenns geht alle tables rausfiltern weil sind manchmal auch 2 drinne
 
öhm keiner ne idee wie ich das machen könnt?

also ich hab nen string der besteht aus text und html

so in etwa...

blablab text blabla <table......> text text </table....> text blabla <table......> text text </table....>


so wie kann ich nu als erstes alles "rausfiltern" was zwischen den table tags steht....??

die table tags kann ich ja dann mit strip_tags filtern....es geht mir halt um den text der in den tabellen steht

mfG
Hammerhe@rt
 
$eing = "blablab text blabla <table......> text text </table....> text blabla <table......> text text </table....> bla ";

while (strpos($eing,"</table") > 0) {
$ausg = substr($eing,0,strpos($eing,"<table")) . substr($eing,strpos($eing,"</table>")+8,strlen($eing));
echo "$ausg<hr>";
$eing = $ausg;
}

echo "kommt raus:<br>$eing<hr>";
 
ein problem gibs wohl in der while abfrage...

habs jetzt so gemacht und es funzt super....

PHP:
	while (strpos($string,"<table>")) {
		$start = strpos($string,"<table>");
		$ende = strpos($string,"</table>");
		$ende = $ende+8-$start;
		$string = substr_replace($string, '&nbsp;', $start, $ende);
	}


thx trotzdem für den denkanstoß
mfG
Hammerhe@rt

PS: was ich aber nicht so richtig schnalle :-) ist das $ende = $ende+8-$start

das -$start musst ich reinbauen weil er sonst immer falsch "abgeschnitten hat...je nachdem ob es gleich mit <tabl... losging oder erst text vorher kommt...vielleicht kann mir das einer erklären...hab das nur instinktiv da reingehaun :-)

PPS: ahhh doch geschnallt...weil $ende ind substr_replace die Länge der Zeichenkette angiebt ...also perfekt :rolleyes:
 
Zuletzt bearbeitet:
Zurück