Maison développement back-end tutoriel php 收藏一些规范化输入输出的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;
}
Copier après la connexion

2. 多行纯文本 适合textarea

function text($text)
{
    return trim(nl2br(str_replace(' ', ' ', htmlspecialchars($text))));
}
Copier après la connexion

3. 将html换行变成回车

function br2nl($text)
{
   	return trim(preg_replace('/<br\\s*\/?'.'>/i', '', $text));
}
Copier après la connexion

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;
}
Copier après la connexion

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;
}
Copier après la connexion

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

function et($text)
{
	return trim(br2nl(str_replace(' ', ' ', $text )));
}
Copier après la connexion

7. 在html编辑器中显示html

function eh($text)
{
	return trim(str_replace('"','"', $text));
}
Copier après la connexion

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);
	}
}
Copier après la connexion

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/752446.htmlTechArticle在PHP网站开发过程中会遇到很多需要转义的地方,下面推荐几个很好的函数,可以很好地增强网站的输入输出规范化问题。 1. 纯文本输出,...
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment standardiser l'optimisation des performances grâce aux spécifications du code PHP Comment standardiser l'optimisation des performances grâce aux spécifications du code PHP Aug 11, 2023 pm 03:51 PM

Comment standardiser l'optimisation des performances grâce aux spécifications du code PHP Introduction : Avec le développement rapide d'Internet, de plus en plus de sites Web et d'applications sont développés sur la base du langage PHP. Dans le processus de développement PHP, l’optimisation des performances est un aspect crucial. Un code PHP performant peut améliorer considérablement la vitesse de réponse du site Web et l'expérience utilisateur. Cet article explorera comment standardiser l'optimisation des performances grâce aux spécifications du code PHP et fournira quelques exemples de code pratiques à titre de référence. 1. Réduisez les requêtes de base de données Les requêtes fréquentes de base de données sont un problème de performances courant pendant le processus de développement.

Comment effectuer la vérification et la normalisation du style de code dans GitLab Comment effectuer la vérification et la normalisation du style de code dans GitLab Oct 25, 2023 am 08:38 AM

Comment effectuer la vérification et la normalisation du style de code dans GitLab Le style et les spécifications du code sont très importants pour le développement de projets d'équipe. Les spécifications de code unifiées peuvent améliorer la lisibilité, la maintenabilité et l’évolutivité du code, et réduire les bugs et erreurs potentiels. Dans le développement en équipe, en utilisant des outils de contrôle de version tels que GitLab pour gérer le code du projet, la vérification du style de code et la standardisation peuvent être facilement effectuées. Cet article explique comment effectuer la vérification et la normalisation du style de code dans GitLab, et fournit des exemples de code spécifiques. Configurer l'inspection du code

Comment résoudre : erreur d'entrée et de sortie Java : erreur de lecture de fichier Comment résoudre : erreur d'entrée et de sortie Java : erreur de lecture de fichier Aug 17, 2023 pm 03:21 PM

Comment résoudre : Erreur d'entrée et de sortie Java : Erreur de lecture de fichier Lorsque vous utilisez Java pour des opérations de lecture de fichiers, vous rencontrerez parfois des erreurs de lecture de fichiers. Cette erreur peut être causée par un chemin de fichier incorrect, un fichier inexistant, des autorisations insuffisantes, etc. Cet article explique comment résoudre le problème d'erreur de lecture de fichier dans les erreurs d'entrée et de sortie Java et fournit des exemples de code pour illustrer la solution. Vérifiez si le chemin du fichier est correct. Lors de la lecture d'un fichier en Java, vous devez d'abord vous assurer que le chemin du fichier est correct. Le chemin du fichier peut être un chemin absolu

Explication détaillée de la façon d'utiliser la fonction scanf en langage C Explication détaillée de la façon d'utiliser la fonction scanf en langage C Feb 21, 2024 pm 06:30 PM

Explication détaillée et exemples de code sur la façon d'utiliser la fonction scanf en langage C. Le langage C est un langage de programmation largement utilisé dans divers développements de logiciels. Ses fonctions d'entrée et de sortie jouent un rôle très important dans l'écriture de programmes. Parmi elles, la fonction scanf est l'une des fonctions du langage C utilisées pour lire l'entrée standard. Elle peut lire les données du clavier selon un format spécifique et les stocker dans une variable spécifiée. Cet article présentera en détail l'utilisation de la fonction scanf et fournira quelques exemples de codes pour exemples. Jetons d’abord un coup d’œil à la fonction scanf

Comment optimiser la validation de formulaire et la validation de saisie de données dans le développement PHP Comment optimiser la validation de formulaire et la validation de saisie de données dans le développement PHP Oct 08, 2023 am 09:17 AM

Comment optimiser la validation des formulaires et la validation des saisies de données dans le développement PHP [Introduction] Dans le développement Web, la validation des formulaires et la validation des saisies de données sont des étapes très importantes. Elles peuvent garantir la légalité et la sécurité des données saisies par l'utilisateur. Non seulement il peut éviter les erreurs de saisie utilisateur ou les entrées malveillantes, mais il peut également protéger la base de données ou l'application contre des attaques telles que l'injection SQL. Cet article expliquera comment optimiser la validation des formulaires et la validation des entrées de données dans le développement PHP, et fournira des exemples de code spécifiques. [1. Vérification côté serveur] La première étape consiste à fournir à l'utilisateur

Conseils pratiques pour normaliser et formater le code PyCharm Conseils pratiques pour normaliser et formater le code PyCharm Feb 23, 2024 pm 02:54 PM

PyCharm est un environnement de développement intégré (IDE) couramment utilisé par les développeurs Python. Il fournit une multitude de fonctions et d'outils pour améliorer la qualité et l'efficacité du code. Parmi eux, la normalisation et le formatage du code constituent l’une des étapes importantes de l’écriture d’un code de haute qualité. Cet article présentera quelques techniques et fonctions pratiques de PyCharm pour aider les développeurs à standardiser et formater le code Python. Vérification automatique des spécifications PEP8 PEP8 est le guide de spécification de code officiellement fourni par Python, qui comprend une série de styles de codage, de conventions de dénomination, etc.

Pratique standardisée de conception d'API RESTful dans le projet Vue Pratique standardisée de conception d'API RESTful dans le projet Vue Jun 09, 2023 pm 04:11 PM

Avec le développement continu et la popularité des frameworks front-end, les applications monopage sont devenues l'une des applications Web les plus répandues. Parmi eux, Vue.js est apprécié des développeurs en raison de sa simplicité, de sa facilité d'apprentissage et de son développement efficace. Cependant, contrairement aux applications Web traditionnelles, les applications monopage doivent interagir avec les API back-end pour obtenir des données et effectuer diverses opérations. Afin de rendre l'interaction entre le front-end et le back-end plus pratique, efficace et maintenable, il est très important de concevoir la pratique standardisée de l'API RESTful dans le projet Vue. REST (Repré

Quelles sont les instructions d'entrée et de sortie en C++ ? Quelles sont les instructions d'entrée et de sortie en C++ ? Feb 01, 2023 pm 05:31 PM

Les instructions d'entrée et de sortie C++ incluent : 1. l'instruction scanf(), utilisée pour lire les données saisies à partir du clavier ; 2. l'instruction printf(), utilisée pour afficher les informations de format spécifiées sur le périphérique de sortie standard ; 3. l'instruction cout, représentant la sortie standard ; , lorsque vous utilisez cout pour la sortie, vous devez suivre l'opérateur "<<" ; 4. L'instruction cin représente l'entrée standard, et lorsque vous utilisez cin pour l'entrée, vous devez suivre l'opérateur ">>".

See all articles