strip_tags sucks
Peder
- php
1 suit0 krischi0 fürs ARCHIV
Peder
Sers!
strip_tags ist eigentlich genau was ich suche, nur blöd das es nicht so funktioniert wie es soll. Hat jemand eine Alternative?
Danke!
Peder
[...] nur blöd das es nicht so funktioniert wie es soll.
Ich bin mir _ziemlich_ sicher, dass strip_tags() wie definiert funktioniert.
Ich bin mir _ziemlich_ sicher, dass strip_tags() wie definiert funktioniert.
Irgendwie wars mir ja klar das wieder so ne behinderte Antwort kommt die mir nicht hilft. besserwisser Mentalität hier..
Google
Leider finde ich nur keine Alternative!
Peder
Hi,
Irgendwie wars mir ja klar das wieder so ne behinderte Antwort kommt die mir nicht hilft. besserwisser Mentalität hier..
wenn Dir die Antwort nicht gefällt, könnte es an der Frage liegen. Sie ist nämlich ein klarer Beleg dafür, dass es *doch* dumme Fragen gibt.
Leider finde ich nur keine Alternative!
Wie zur Hölle soll Dir eine Alternative genannt werden, wenn Du nur "alle doof außer Mama" sagst und nicht mal sagst, was Dir an der Funktion nicht gefällt? Sie funktioniert wie spezifiziert - wenn Du anderer Meinung bist, machst Du offenbar etwas falsch.
Cheatah
zB
<TABLE>
<TR>
<TD>Test2</TD>
<TD BACKGROUND="<?=$var;?>">Test4</TD>
<TD>Test5</TD>
</TR>
</TABLE>
Die Funktion kommt bis zu dem PHP-Code und nicht weiter!
Also macht sie schon mal nicht das was beschrieben wird!
Peder
Die Funktion kommt bis zu dem PHP-Code und nicht weiter!
Ich sehe keine Funktion. Lediglich eine HTML-Wurst und eine echo in potentiell nicht funktionierender Kurzschreibweise.
Also macht sie schon mal nicht das was beschrieben wird!
Was erwartest du von strip_tags(), wenn du die Funktion nichtmal verwendest?
Ja nu - das wird nur der Code sein, den er versucht da durch zu schicken...
aber ohne uns zu zeigen wo er das aufruft...
Hello,
Ja nu - das wird nur der Code sein, den er versucht da durch zu schicken...
aber ohne uns zu zeigen wo er das aufruft...
... und vor allem, was dann wirklich rauskommt, wie betrachtet, mit welcher Codierung abgespeichert usw?
Im Prinzip ist strip_tags() auch eine hoch überlastete Funktion. Die soll quasi den gesamten Code parsen und zerlegen und dann die ungewollten Elemente entfernen. Dazu müsste sie den Code erstmal auf sachliche (syntaktische) Richtigkeit überprüfen. Das tut sie mWn aber nicht.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg

Hello,
Im Prinzip ist strip_tags() auch eine hoch überlastete Funktion. Die soll quasi den gesamten Code parsen und zerlegen und dann die ungewollten Elemente entfernen. Dazu müsste sie den Code erstmal auf sachliche (syntaktische) Richtigkeit überprüfen. Das tut sie mWn aber nicht.
Das steht ja auch extra dick & fett im Manual!
Siehe: http://de.php.net/manual/en/function.strip-tags.php#function.strip-tags.notes
Gruß Gunther
Im Prinzip ist strip_tags() auch eine hoch überlastete Funktion. Die soll quasi den gesamten Code parsen und zerlegen und dann die ungewollten Elemente entfernen.
No, sie soll alle ausser die ausgenommenen Tags entfernen.
striptag soll normalerweise Tags entfernen. Nicht Elemente. Ich sehe nicht, was da schwierig wäre. Du brauchst nicht mal Rekursionen. Und eine Syntaxprüfung macht diese Funktion untauglich, weil Syntax ein vollkommenes Dokument verlangt. strip_tags ist kein Parser.
Dazu müsste sie den Code erstmal auf sachliche (syntaktische) Richtigkeit überprüfen. Das tut sie mWn aber nicht.
Weil sie damit schlicht unbrauchbar würde.
mfg Beat
Hello,
Im Prinzip ist strip_tags() auch eine hoch überlastete Funktion. Die soll quasi den gesamten Code parsen und zerlegen und dann die ungewollten Elemente entfernen.
No, sie soll alle ausser die ausgenommenen Tags entfernen.
striptag soll normalerweise Tags entfernen. Nicht Elemente. Ich sehe nicht, was da schwierig wäre. Du brauchst nicht mal Rekursionen. Und eine Syntaxprüfung macht diese Funktion untauglich, weil Syntax ein vollkommenes Dokument verlangt. strip_tags ist kein Parser.Dazu müsste sie den Code erstmal auf sachliche (syntaktische) Richtigkeit überprüfen. Das tut sie mWn aber nicht.
Weil sie damit schlicht unbrauchbar würde.
das möchte ich nochmal in die Diskussion zurückgeben:
Ist es denn überhaupt möglich, Tags zu entfernen (und nicht Konstrukte, die so ähnlich aussehen, wie Tags), wenn man nicht den übergebenen Text vollständig parst?
Ich denke, hier liegt der Hase im Pfeffer :-)
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg

Ist es denn überhaupt möglich, Tags zu entfernen (und nicht Konstrukte, die so ähnlich aussehen, wie Tags), wenn man nicht den übergebenen Text vollständig parst?
Ein Tag ist ein grammatikalisches Konstrukt. Aber ein Tag erzeugt kein Element. Wenn der Parser kenntnis von Elementen haben soll, dann bracht er eine Syntaxdeklaration + ein vollständiges Dokument.
Bei einer Funktion kommt es darauf an, was ich erreichen will.
strip_tags ist zum Beipiel etwas anderes als strip_html.
Ich denke, hier liegt der Hase im Pfeffer :-)
Nö, bei mir liegt die Schweinswurst in den Bohnen.
mfg Beat
Hello,
Ich denke, hier liegt der Hase im Pfeffer :-)
Nö, bei mir liegt die Schweinswurst in den Bohnen.
Au fein! Ich komme vorbei. Wann ist das Essen fertig?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg

Hallo Tom,
Ich denke, hier liegt der Hase im Pfeffer :-)
Nö, bei mir liegt die Schweinswurst in den Bohnen.
Au fein! Ich komme vorbei. Wann ist das Essen fertig?
Du kommst zu spät. Es ist verschlungen. Die ganze Wochenration auf einmal. Garantiert.
mfg
cygnus
Hello,
Ist es denn überhaupt möglich, Tags zu entfernen (und nicht Konstrukte, die so ähnlich aussehen, wie Tags), wenn man nicht den übergebenen Text vollständig parst?
Ich denke, hier liegt der Hase im Pfeffer :-)
Nein, das ist eben nicht möglich. Die Funktion "arbeitet nur nach Schema 'F'".
Beispiel:
$text="<br><br>Wenn gilt: x <= y dann muss auch gelten: y >= x";
$text_stripped = strip_tags($text);
echo"$text_stripped";
Ausgabe:
Wenn gilt: x = x
Gruß Gunther
Was erwartest du von strip_tags(), wenn du die Funktion nichtmal verwendest?
oh mann...
$content = file_get_contents("meinefile.php");
$content = strip_tags($content);
und wenn ich mir dann das per echo ausgeben lasse, dann verhält es sich so wie in meinem letzten Post beschrieben!
<TABLE>
<TR>
<TD>Test2</TD>
<TD BACKGROUND="<?=$var;?>">Test4</TD>
<TD>Test5</TD>
</TR>
</TABLE>
Du möchtest also das dabei rauskommt:
- Leerzeile
- Leerzeile
Test2
Test4
Test5
- Leerzeile
- Leerzeile
Stattdessen kommt aber
- Leerzeile
- Leerzeile
Test2
~~~html
<?=$var;?>">Test4</TD>
<TD>Test5</TD>
</TR>
</TABLE>
oder etwas in der Art?
Ich bin mir _ziemlich_ sicher, dass strip_tags() wie definiert funktioniert.
Irgendwie wars mir ja klar das wieder so ne behinderte Antwort kommt die mir nicht hilft. besserwisser Mentalität hier..
Heile den behinderten Code.
Wenn das nicht geht, musst du deine eigene Medizin erfinden.
Der Umgang mit kaputtem Fremdcode, den man nicht verändern kann, sollte Anlass geben:
a) Den Autoren darauf aufmerksam zu machen, dass der Code nicht auswertbar ist.
b) Ihn nach einer alternativen API fragen.
c) Ihn vor allem überhaupt mal zuerst fragen, ob man das darf.
mfg Beat
Hi Peter,
es gibt natuerlich im PHP-Standard die Funktion
function_that_does_exactly_what_strip_tags_is_supposed_to_be_doing()
Nimm einfach die :-)
Viele Gruesse
der Bademeister
Grundlage für Zitat #1525.
Hi,
Irgendwie wars mir ja klar das wieder so ne behinderte Antwort kommt die mir nicht hilft. besserwisser Mentalität hier..
Idiot.
MfG ChrisB
moinmoin,
nur blöd das es nicht so funktioniert wie es soll
was hätte es denn tun sollen und was hat es statt dessen für ein Ergebnis geliefert, das von der Beschreibung abweicht? Deine Fehlerbeschreibung ist.. ähm... naja... *etwas* sehr kurz um nachvollziehen zu können, was du eigendlich möchtest, bzw wo das Problem liegt/lag.
Hat jemand eine Alternative?
bestimmt, wenn du beschreibst wofür
Gruß Krischi
Ich wiederhole mich nur ungern, aber diese Funktion ist VOLL mit BUGS!
Google
Dachte ich stoße hier auf gleichgesinnte die schon mal das selbe Problem hatten, aber ne hier wird man erst mal dumm gefragt..
Peder
moinmoin
aber ne hier wird man erst mal dumm gefragt..
jupp... blöd fragen kann ich gut... hellsehen, was du möchtest, kann ich nicht. Da du dich konsequent weigerst, sinnvolle Informationen beizusteuern, tut es mir leid, dir nicht helfen zu können.
Gruß Krischi
Ich wiederhole mich nur ungern, aber diese Funktion ist VOLL mit BUGS!
Wenn man die Treffer der Reihe nach durchgeht, wird man feststellen, dass diese bereits behoben sind - die meisten treffer sind aus dem Jahre Schnee (2000, 2001, 2002 ...) und beziehen sich auf irgendwelchen antiken PHP-4-Versionen
Dachte ich stoße hier auf gleichgesinnte die schon mal das selbe Problem hatten, aber ne hier wird man erst mal dumm gefragt..
"Because strip_tags() does not actually validate the HTML, partial, or broken tags can result in the removal of more text/data than expected."
Was erwartest du dir, wenn du HTML mit PHP-gemischt an einen Funktion übergibst, die tendentiell HTML parsen soll?
Was erwartest du dir, wenn du HTML mit PHP-gemischt an einen Funktion übergibst, die tendentiell HTML parsen soll?
also Laut Beschreibung soll die schon HTML und PHP Tags rauswerfen...
This function tries to return a string with all HTML and PHP tags stripped from a given str.
Aber "tries"... ist eben "versucht"...
Hi!
Ich wiederhole mich nur ungern, aber diese Funktion ist VOLL mit BUGS!
Bei der Verbreitung und Beliebtheit von PHP halte ich das für ein Gerücht.
Dachte ich stoße hier auf gleichgesinnte die schon mal das selbe Problem hatten,
Wie war das noch gleich mit dem Denken ...?
Und bis jetzt hast du uns in deiner außerordentlich freundlichen Art immer noch nicht verständlich zum Ausdruck gebracht,
aber ne hier wird man erst mal dumm gefragt..
Der Einzige, der sich hier bisher dumm anstellt, bist wohl du.
Wenn es dir augenscheinlich schon zu lästig ist,_dein_Problem verständlich zu posten und auf Rückfragen ebenso zu antworten, warum sollten sich dann andere hier die Zeit nehmen, und sich mit deinem Problem beschäftigen?
Wie man in den Wald hineinruft, so schallt es heraus!
Im übrigen scheint es mir (bei flüchtiger Betrachtung) auch irgendwie nicht besonders clever, offenbar eine Datei einzulesen, die nur aus HTML- und PHP-Tags besteht, und diese dann durch strip_tags() zu jagen.
Gruß Gunther
Damit wenigstens der nächste was davon hat:
Damit werde ich glaube ich glücklich!
Damit wenigstens der nächste was davon hat:
Ohne zu wissen, was du eigentlich erreichen wolltest wird es jemandem der im Archiv sucht auch nicht wirklich helfen.
Hello,
Damit wenigstens der nächste was davon hat:
Damit werde ich glaube ich glücklich!
Das war auch mein Gedanke, dass Du vermutlich nur den Weg über einen DOM-Parser gehen kannst, wenn auch von komplexeren Strings noch das Gewünschte übrig bleiben soll...
Beat ist da allerdings anderer Ansicht:
http://forum.de.selfhtml.org/my/?t=191413&m=1276459
Das ist für mich aber noch nicht wirklich erledigt.
Man muss da wohl erstmal eine Unterscheidung treffen:
So ungefähr würde ich mir eine Optionsliste vorstellen.
Es wäre sehr schön, wenn Du Dir selber diesen Thread merkst und ihn mit Informationen fütterst, sowie Du die auf die ersten Erfolge oder konkreten Fragen gestoßen bist. Dann könnte aus PHP-Bashing doch noch konstruktive Mitarbeit werden :-)
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
