Mailinglisten-Archive |
Hallo Frank, > Hallo > > Ich stehe leider mal wieder auf dem Schlauch. > > Mit : > > $text = "<table border='0'>"; > preg_match("/(<html> | <table | <font | <style)/i", $text) > > möchte ich gerne einen Text daraufhin prüfen ob es sich um HTML oder um > reinen Text handelt. Warum die Leerzeichen? http://de3.php.net/manual/de/function.preg-quote.php dort steht unteranderem: Spezielle Zeichen regulärer Ausdrücke sind: . \\ + * ? [ ^ ] $ ( ) { } = ! < > | : Also sollte entweder die einzelnen "html" Stringteile mit preg-quote() maskiert werden oder eben mit Hand: preg_match("/(\<html\>|\<table|\<font|\<style)/i", $text) > In diesem Fall ist das Ergebnis WAHR. > Nur wenn <table z.B. in Grossbuchstaben geschrieben wurde, dann leider > nicht > mehr. > Laut Manual bewirkt /i am Ende, dass zwischen GuK-Schreibung nicht > unterschieden wird. > > Wenn das Manual recht hat, wovon ich eigentlich ausgehe, frage ich > mich was > ich denn da falsch mache? Die Manual hat in dem Fall natürlich auch mal wieder Recht ;) Aber prinzipiell würde ich das ganze hinterfragen ob das so sinnvoll ist was Du da machst. Es gibt ja noch jede menge andre HTML Tags. Ich persönlich würde das schon ein bisschen globaler fassen. preg_match("/\<[a-z]+(.*?)\>/i, $text) irgend wie so in die Richtung. Oder einfach den HTML Code umwandeln so das er vom Browser angezeigt wird und nicht mehr interpretiert wird. http://de3.php.net/manual/de/function.htmlentities.php Gruß Aron
php::bar PHP Wiki - Listenarchive