Überprüfung regulärer PHP-Ausdrücke häufig verwendeter Sonderzeichen
Bei der Programmierung müssen wir häufig die vom Benutzer eingegebenen Daten überprüfen. In PHP können reguläre Ausdrücke diesen Bedarf problemlos erfüllen. Aufgrund der Vielzahl der von Benutzern eingegebenen Daten müssen wir jedoch manchmal besonderes Augenmerk auf die Überprüfung von Sonderzeichen legen, um die Gültigkeit und Sicherheit der Daten zu gewährleisten.
Das Spektrum an Sonderzeichen ist sehr groß, z. B. HTML-Tags, URL-Adressen, XML-Tags, SQL-Anweisungen usw. sind alles Sonderzeichen. Diese Zeichen können die Ausführung des Programms beeinträchtigen oder missbräuchlich ausgenutzt werden, um Sicherheitslücken zu verursachen. Daher müssen wir die häufig verwendeten Sonderzeichen kennen und zur Überprüfung reguläre PHP-Ausdrücke verwenden.
HTML-Tags sind wesentliche Elemente in Webseiten. Wenn diese Tags jedoch nicht richtig gefiltert werden, können sie auch für Angriffe ausgenutzt werden. Mit regulären PHP-Ausdrücken können HTML-Tags validiert und bereinigt werden. Mit dem folgenden regulären Ausdruck kann beispielsweise überprüft werden, ob ein HTML-Tag enthalten ist:
if (preg_match('/<(.*)>.*</>|<(.*) />/', $string)) { echo "包含HTML标记"; } else { echo "没有包含HTML标记"; }
Im obigen regulären Ausdruck stellt
die Übereinstimmung innerhalb der ersten Klammer im regulären Ausdruck dar,
> stellt die Übereinstimmung innerhalb der zweiten Klammer dar. 表示正则表达式中第一个圆括号内的匹配项,
则表示第二个圆括号内的匹配项。
字母数字字符是指由字母和数字组成的字符串。在一些场景下,只允许使用字母数字字符,这时候我们可以使用如下正则表达式进行验证:
if (preg_match('/^[a-zA-Z0-9]+$/', $string)) { echo "是字母数字字符"; } else { echo "不是字母数字字符"; }
上述正则表达式中,^
表示字符串的开头,$
表示字符串的结尾,[a-zA-Z0-9]
表示匹配任意一个字母或数字。
在应用中,常常需要对用户输入的URL地址进行验证。使用如下正则表达式可以验证URL地址的格式:
if (preg_match('/^http://[a-zA-Z0-9-.]+.[a-zA-Z]{2,3}(/S*)?$/', $url)) { echo "URL地址格式正确"; } else { echo "URL地址格式错误"; }
上述正则表达式中,^
表示字符串的开头,$
表示字符串的结尾;http://
表示匹配以“http://”开头的字符串;[a-zA-Z0-9-.]+
表示匹配任意一个字母、数字、横线或点号,并且数量至少为1;[a-zA-Z]{2,3}
表示匹配任意两个或三个字母;(/S*)?
表示匹配一个斜杠后面跟着任意数量的非空字符,这个部分可选。
在XML文档中,标签和其内容是以一定的格式呈现的。使用如下正则表达式可以验证XML标签的格式是否正确:
if (preg_match('/^<([^/]+?)>.*</>$/', $xml)) { echo "XML标签格式正确"; } else { echo "XML标签格式错误"; }
上述正则表达式中,^
表示字符串的开头,$
表示字符串的结尾,<([^/]+?)>
表示匹配任意一个非斜杠字符,圆括号表示把这个部分作为第一个匹配项并记录下来;.*
表示匹配任意数量的字符;</>
表示匹配第一个匹配项匹配的字符串。
SQL注入攻击是一种常见的网络攻击方式,攻击者在应用程序中注入SQL语句,从而让应用程序执行恶意的操作。使用如下正则表达式可以过滤用户输入的数据,防止SQL注入攻击:
function filter_sql($string) { // 去除SQL关键字 $string = preg_replace('/(SELECT|UPDATE|DELETE|DROP|INSERT|ALTER)/i', "", $string); // 去除单引号 $string = str_replace("'", "", $string); return $string; }
上述正则表达式中,表示单词的边界,
(SELECT|UPDATE|DELETE|DROP|INSERT|ALTER)
表示匹配这些关键字,i
^
den Anfang der Zeichenfolge dar, $
steht für das Ende der Zeichenfolge, [a-zA-Z0-9]
steht für die Übereinstimmung eines beliebigen Buchstabens oder einer beliebigen Zahl. 🎜^
den Anfang der Zeichenfolge und $
das Ende dar der Zeichenfolge; http:// bedeutet Übereinstimmung mit einer Zeichenfolge, die mit „http://“ beginnt; [a-zA-Z0-9-.]+
bedeutet Übereinstimmung mit einer beliebigen Zeichenfolge Buchstabe oder Zahl, Bindestrich oder Punkt, und die Zahl ist mindestens 1; [a-zA-Z]{2,3}
bedeutet, dass zwei oder drei beliebige Buchstaben übereinstimmen (/S*; ) ? bedeutet die Übereinstimmung mit einem Schrägstrich gefolgt von einer beliebigen Anzahl nicht leerer Zeichen. Dieser Teil ist optional. 🎜^
den Anfang der Zeichenfolge dar und $
stellt das Ende der Zeichenfolge dar. <([^/]+?)>
bedeutet, dass ein beliebiges Nicht-Schrägstrichzeichen gefunden wird. Klammern bedeuten, dass dieser Teil als erstes übereinstimmendes Element verwendet und aufgezeichnet wird >.* bedeutet Übereinstimmung mit einer beliebigen Anzahl von Zeichen; </ >
bedeutet Übereinstimmung mit der Zeichenfolge, mit der die erste Übereinstimmung übereinstimmt. 🎜
die Grenze des Wortes (SELECT|UPDATE|DELETE| DROP |INSERT|ALTER)
bedeutet, dass diese Schlüsselwörter übereinstimmen, i
bedeutet, dass die Groß-/Kleinschreibung nicht beachtet wird. 🎜🎜Beim Schreiben von Anwendungen müssen wir die Vielfalt und Sicherheit der Daten berücksichtigen. Es ist sehr wichtig, reguläre PHP-Ausdrücke zu verwenden, um vom Benutzer eingegebene Daten zu überprüfen und zu bereinigen. Anhand der obigen Beispiele können wir sehen, dass reguläre PHP-Ausdrücke sehr leistungsfähig und flexibel sind, in verschiedenen Szenarien angewendet werden können und uns dabei helfen, die Sicherheit und Zuverlässigkeit von Anwendungen sicherzustellen. 🎜Das obige ist der detaillierte Inhalt vonRegulärer PHP-Ausdruck zur Überprüfung gängiger Sonderzeichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!