Heim Backend-Entwicklung PHP-Tutorial 收藏一些规范化输入输出的PHP函数_PHP教程

收藏一些规范化输入输出的PHP函数_PHP教程

Jul 13, 2016 am 10:33 AM
规范化 输入输出

在PHP网站开发过程中会遇到很多需要转义的地方,下面推荐几个很好的函数,可以很好地增强网站的输入输出规范化问题。

1. 纯文本输出,适合input

function t($text){
	$text = h($text);
	$text = strip_tags($text);
	return $text;
}
Nach dem Login kopieren

2. 多行纯文本 适合textarea

function text($text)
{
    return trim(nl2br(str_replace(' ', ' ', htmlspecialchars($text))));
}
Nach dem Login kopieren

3. 将html换行变成回车

function br2nl($text)
{
   	return trim(preg_replace('/<br\\s*\/?'.'>/i', '', $text));
}
Nach dem Login kopieren

4. 输出安全的html

function h($text){
	$text = trim($text);
	$text = stripslashes($text);
	//完全过滤注释
	$text = preg_replace('/<!--?.*-->/','',$text);
	//完全过滤动态代码
	$text = preg_replace('/<\?|\?'.'>/','',$text);
	//完全过滤js
	$text = preg_replace('/<script?.*\/script>/','',$text);
	$text = str_replace('[','[',$text);
	$text = str_replace(']',']',$text);
	$text = str_replace('|','|',$text);
	//过滤换行符
	$text = preg_replace('/\r?\n/','',$text);
	//br
	$text = preg_replace('/<br(\s\/)?'.'>/i','[br]',$text);
	$text = preg_replace('/(\[br\]\s*){10,}/i','[br]',$text);
	//hr img area input
	$text = preg_replace('/<(hr|img|input|area|isindex)( [^><\[\]]*)>/i','[\1\2]',$text);
	//过滤多余html
	$text = preg_replace('/<\/?(html|head|meta|link|base|body|title|style|script|form|iframe|frame|frameset)[^><]*>/i','',$text);
	//过滤on事件lang js
	while(preg_match('/(<[^><]+)( lang|onfinish|onmouse|onexit|onerror|onclick|onkey|onload|onchange|onfocus|onblur)[^><]+/i',$text,$mat)){
		$text=str_replace($mat[0],$mat[1],$text);
	}
	while(preg_match('/(<[^><]+)(window\.|javascript:|js:|about:|file:|document\.|vbs:|cookie)([^><]*)/i',$text,$mat)){
		$text=str_replace($mat[0],$mat[1].$mat[3],$text);
	}
	//过滤合法的html标签
	while(preg_match('/<([a-z]+)[^><\[\]]*>[^><]*<\/\1>/i',$text,$mat)){
		$text=str_replace($mat[0],str_replace('>',']',str_replace('<','[',$mat[0])),$text);
	}
	//转换引号
	while(preg_match('/(\[[^\[\]]*=\s*)(\"|\')([^\2=\[\]]+)\2([^\[\]]*\])/i',$text,$mat)){
		$text=str_replace($mat[0],$mat[1].'|'.$mat[3].'|'.$mat[4],$text);
	}
	//过滤错误的单个引号
	while(preg_match('/\[[^\[\]]*(\"|\')[^\[\]]*\]/i',$text,$mat)){
		$text=str_replace($mat[0],str_replace($mat[1],'',$mat[0]),$text);
	}
	//转换其它所有不合法的 < >
	$text = str_replace('<','<',$text);
	$text = str_replace('>','>',$text);
	$text = str_replace('"','"',$text);
	//反转换
	$text = str_replace('[','<',$text);
	$text = str_replace(']','>',$text);
	$text = str_replace('|','"',$text);
	//过滤多余空格
	$text = str_replace(' ',' ',$text);
	return $text;
}
Nach dem Login kopieren

5. 过滤脚本代码

function cleanJs($text){
	$text = trim($text);
	$text = stripslashes($text);
	//完全过滤动态代码
	$text = preg_replace('/<\?|\?'.'>/','',$text);
	//完全过滤js
	$text = preg_replace('/<script?.*\/script>/','',$text);
	//过滤多余html
	$text = preg_replace('/<\/?(html|head|meta|link|base|body|title|style|script|form|iframe|frame|frameset)[^><]*>/i','',$text);
	//过滤on事件lang js
	while(preg_match('/(<[^><]+)(lang|onfinish|onmouse|onexit|onerror|onclick|onkey|onload|onchange|onfocus|onblur)[^><]+/i',$text,$mat)){
		$text=str_replace($mat[0],$mat[1],$text);
	}
	while(preg_match('/(<[^><]+)(window\.|javascript:|js:|about:|file:|document\.|vbs:|cookie)([^><]*)/i',$text,$mat)){
		$text=str_replace($mat[0],$mat[1].$mat[3],$text);
	}
	return $text;
}
Nach dem Login kopieren

6. 在编辑器中显示纯文本

function et($text)
{
	return trim(br2nl(str_replace(' ', ' ', $text )));
}
Nach dem Login kopieren

7. 在html编辑器中显示html

function eh($text)
{
	return trim(str_replace('"','"', $text));
}
Nach dem Login kopieren

8. 判断时间距离

function friendlyDate($sTime,$type = 'normal',$alt = 'false') {
	//sTime=源时间,cTime=当前时间,dTime=时间差
	$cTime = time();
	$dTime = $cTime - $sTime;
	$dDay = intval(date("Ymd",$cTime)) - intval(date("Ymd",$sTime));
	$dYear = intval(date("Y",$cTime)) - intval(date("Y",$sTime));
	//normal:n秒前,n分钟前,n小时前,日期
	if($type=='normal'){
		if( $dTime < 60 )
		{
   			echo $dTime."秒前";
		}
		elseif( $dTime < 3600 )
		{
   			echo intval($dTime/60)."分钟前";
		}
		elseif( $dTime >= 3600 && $dDay == 0 )
		{
   			echo intval($dTime/3600)."小时前";
		}
		elseif($dYear==0)
		{
   			echo date("m-d ,H:i",$sTime);
		}
		else
		{
   			echo date("Y-m-d ,H:i",$sTime);
		}
		//full: Y-m-d , H:i:s
	}
	elseif($type=='full')
	{
		echo date("Y-m-d , H:i:s",$sTime);
	}
}
Nach dem Login kopieren

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/752446.htmlTechArticle在PHP网站开发过程中会遇到很多需要转义的地方,下面推荐几个很好的函数,可以很好地增强网站的输入输出规范化问题。 1. 纯文本输出,...
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So standardisieren Sie die Leistungsoptimierung durch PHP-Codespezifikationen So standardisieren Sie die Leistungsoptimierung durch PHP-Codespezifikationen Aug 11, 2023 pm 03:51 PM

So standardisieren Sie die Leistungsoptimierung durch PHP-Codespezifikationen. Einführung: Mit der rasanten Entwicklung des Internets werden immer mehr Websites und Anwendungen auf Basis der PHP-Sprache entwickelt. Im PHP-Entwicklungsprozess ist die Leistungsoptimierung ein entscheidender Aspekt. Ein leistungsstarker PHP-Code kann die Reaktionsgeschwindigkeit und das Benutzererlebnis der Website erheblich verbessern. In diesem Artikel wird untersucht, wie die Leistungsoptimierung durch PHP-Codespezifikationen standardisiert werden kann, und es werden einige praktische Codebeispiele als Referenz bereitgestellt. 1. Reduzieren Sie Datenbankabfragen. Häufige Datenbankabfragen sind ein häufiges Merkmal während des Entwicklungsprozesses.

So führen Sie eine Codestilprüfung und -normalisierung in GitLab durch So führen Sie eine Codestilprüfung und -normalisierung in GitLab durch Oct 25, 2023 am 08:38 AM

So führen Sie eine Codestilprüfung und -standardisierung in GitLab durch. Der Stil und die Spezifikationen des Codes sind für die Entwicklung von Teamprojekten sehr wichtig. Einheitliche Codespezifikationen können die Lesbarkeit, Wartbarkeit und Skalierbarkeit des Codes verbessern und potenzielle Fehler und Fehler reduzieren. In der Teamentwicklung können mithilfe von Versionskontrolltools wie GitLab zur Verwaltung des Projektcodes problemlos Codestilprüfungen und Standardisierungen durchgeführt werden. In diesem Artikel wird erläutert, wie Sie die Überprüfung und Standardisierung des Codestils in GitLab durchführen, und es werden spezifische Codebeispiele bereitgestellt. Konfigurieren Sie die Codeüberprüfung

So lösen Sie: Java-Eingabe- und Ausgabefehler: Fehler beim Lesen der Datei So lösen Sie: Java-Eingabe- und Ausgabefehler: Fehler beim Lesen der Datei Aug 17, 2023 pm 03:21 PM

So lösen Sie: Java-Eingabe- und Ausgabefehler: Dateilesefehler Bei der Verwendung von Java für Dateilesevorgänge treten manchmal Dateilesefehler auf. Dieser Fehler kann durch einen falschen Dateipfad, eine nicht vorhandene Datei, unzureichende Berechtigungen usw. verursacht werden. In diesem Artikel wird erläutert, wie das Dateilesefehlerproblem bei Java-Eingabe- und -Ausgabefehlern gelöst werden kann, und es werden Codebeispiele bereitgestellt, um die Lösung zu veranschaulichen. Überprüfen Sie, ob der Dateipfad korrekt ist. Wenn Sie eine Datei in Java lesen, müssen Sie zunächst sicherstellen, dass der Dateipfad korrekt ist. Der Dateipfad kann ein absoluter Pfad sein

Detaillierte Erläuterung der Verwendung der Scanf-Funktion in der C-Sprache Detaillierte Erläuterung der Verwendung der Scanf-Funktion in der C-Sprache Feb 21, 2024 pm 06:30 PM

Detaillierte Erläuterungen und Codebeispiele zur Verwendung der Scanf-Funktion in der C-Sprache. Die C-Sprache ist eine in der Softwareentwicklung weit verbreitete Programmiersprache. Ihre Eingabe- und Ausgabefunktionen spielen beim Schreiben von Programmen eine sehr wichtige Rolle. Unter diesen ist die Scanf-Funktion eine der Funktionen in der C-Sprache, die zum Lesen von Standardeingaben verwendet wird. Sie kann Daten von der Tastatur gemäß einem bestimmten Format lesen und in einer angegebenen Variablen speichern. In diesem Artikel wird die Verwendung der Scanf-Funktion ausführlich vorgestellt und einige Beispielcodes als Beispiel bereitgestellt. Schauen wir uns zunächst die Scanf-Funktion an

So optimieren Sie die Formularvalidierung und Dateneingabevalidierung in der PHP-Entwicklung So optimieren Sie die Formularvalidierung und Dateneingabevalidierung in der PHP-Entwicklung Oct 08, 2023 am 09:17 AM

So optimieren Sie die Formularvalidierung und Dateneingabevalidierung in der PHP-Entwicklung [Einführung] In der Webentwicklung sind Formularvalidierung und Dateneingabevalidierung sehr wichtige Schritte. Sie können die Rechtmäßigkeit und Sicherheit der vom Benutzer eingegebenen Daten gewährleisten. Dadurch können nicht nur Benutzereingabefehler oder böswillige Eingaben vermieden werden, sondern auch die Datenbank oder Anwendung vor Angriffen wie SQL-Injection geschützt werden. In diesem Artikel wird erläutert, wie Sie die Formularvalidierung und Dateneingabevalidierung in der PHP-Entwicklung optimieren können, und es werden spezifische Codebeispiele bereitgestellt. [1. Serverseitige Überprüfung] Der erste Schritt besteht darin, dem Benutzer Folgendes bereitzustellen

Praktische Tipps zum Normalisieren und Formatieren von PyCharm-Code Praktische Tipps zum Normalisieren und Formatieren von PyCharm-Code Feb 23, 2024 pm 02:54 PM

PyCharm ist eine integrierte Entwicklungsumgebung (IDE), die häufig von Python-Entwicklern verwendet wird. Sie bietet eine Fülle von Funktionen und Tools zur Verbesserung der Codequalität und -effizienz. Unter diesen ist die Codestandardisierung und -formatierung einer der wichtigen Schritte beim Schreiben von qualitativ hochwertigem Code. In diesem Artikel werden einige praktische Techniken und Funktionen in PyCharm vorgestellt, um Entwicklern bei der Standardisierung und Formatierung von Python-Code zu helfen. Automatische PEP8-Spezifikationsprüfung PEP8 ist der von Python offiziell bereitgestellte Leitfaden zur Codespezifikation, einschließlich einer Reihe von Codierungsstilen, Namenskonventionen usw.

Standardisierte Praxis zum Entwerfen einer RESTful-API im Vue-Projekt Standardisierte Praxis zum Entwerfen einer RESTful-API im Vue-Projekt Jun 09, 2023 pm 04:11 PM

Mit der kontinuierlichen Weiterentwicklung und Beliebtheit von Front-End-Frameworks sind Single-Page-Anwendungen zu einem der Mainstream-Webanwendungen geworden. Unter anderem wird Vue.js von Entwicklern wegen seiner Einfachheit, einfachen Erlernbarkeit und effizienten Entwicklung geliebt. Im Gegensatz zu herkömmlichen Webanwendungen müssen Single-Page-Anwendungen jedoch mit Back-End-APIs interagieren, um Daten abzurufen und verschiedene Vorgänge auszuführen. Um die Interaktion zwischen Front-End und Back-End komfortabler, effizienter und wartbarer zu gestalten, ist es sehr wichtig, die standardisierte Praxis der RESTful API im Vue-Projekt zu entwerfen. REST (Repre

Was sind die Eingabe- und Ausgabeanweisungen in C++? Was sind die Eingabe- und Ausgabeanweisungen in C++? Feb 01, 2023 pm 05:31 PM

Zu den C++-Eingabe- und Ausgabeanweisungen gehören: 1. scanf()-Anweisung, die zum Lesen von Dateneingaben über die Tastatur verwendet wird; 2. printf()-Anweisung, die zum Ausgeben bestimmter Formatinformationen an das Standardausgabegerät verwendet wird; 3. cout-Anweisung, die die Standardausgabe darstellt; Wenn Sie cout für die Ausgabe verwenden, müssen Sie dem Operator „<<“ folgen. 4. Die cin-Anweisung stellt eine Standardeingabe dar, und wenn Sie cin für die Eingabe verwenden, müssen Sie dem Operator „>>“ folgen.

See all articles