入力と出力を正規化するいくつかの PHP 関数を集めます_PHP チュートリアル
在PHP网站开发过程中会遇到很多需要转义的地方,下面推荐几个很好的函数,可以很好地增强网站的输入输出规范化问题。
1. 纯文本输出,适合input
function t($text){ $text = h($text); $text = strip_tags($text); return $text; }
2. 多行纯文本 适合textarea
function text($text) { return trim(nl2br(str_replace(' ', ' ', htmlspecialchars($text)))); }
3. 将html换行变成回车
function br2nl($text) { return trim(preg_replace('/<br\\s*\/?'.'>/i', '', $text)); }
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; }
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; }
6. 在编辑器中显示纯文本
function et($text) { return trim(br2nl(str_replace(' ', ' ', $text ))); }
7. 在html编辑器中显示html
function eh($text) { return trim(str_replace('"','"', $text)); }
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); } }

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

PHP コード仕様を通じてパフォーマンスの最適化を標準化する方法 はじめに: インターネットの急速な発展に伴い、PHP 言語に基づいて開発される Web サイトやアプリケーションがますます増えています。 PHP 開発プロセスでは、パフォーマンスの最適化が重要な要素となります。高性能の PHP コードにより、Web サイトの応答速度とユーザー エクスペリエンスが大幅に向上します。この記事では、PHP コード仕様を通じてパフォーマンスの最適化を標準化する方法を検討し、参考として実用的なコード例をいくつか示します。 1. データベース クエリの削減: 開発プロセスではデータベース クエリが頻繁に発生するのが一般的です。

GitLab でコード スタイルのチェックと標準化を実行する方法 コードのスタイルと仕様は、チーム プロジェクトの開発にとって非常に重要です。統一されたコード仕様により、コードの可読性、保守性、拡張性が向上し、潜在的なバグやエラーが軽減されます。チーム開発では、GitLabなどのバージョン管理ツールを利用してプロジェクトのコードを管理することで、コードのスタイルチェックや標準化が容易に行えます。この記事では、GitLab でコード スタイルのチェックと標準化を実行する方法を紹介し、具体的なコード例を示します。コードインスペクションを構成する

解決方法: Java 入出力エラー: ファイル読み取りエラー Java を使用してファイル読み取り操作を行うと、ファイル読み取りエラーが発生することがあります。このエラーは、間違ったファイル パス、存在しないファイル、不十分な権限などが原因で発生する可能性があります。この記事では、Java の入出力エラーにおけるファイル読み取りエラーの問題を解決する方法を説明し、解決策を示すコード例を示します。ファイル パスが正しいかどうかを確認する Java でファイルを読み取るときは、まずファイル パスが正しいことを確認する必要があります。ファイルパスは絶対パスにすることができます

C言語のscanf関数の詳しい使い方とコード例 C言語は、さまざまなソフトウェア開発で広く使われているプログラミング言語で、その入出力関数はプログラムを書く上で非常に重要な役割を果たします。このうちscanf関数は、C言語の標準入力を読み取るための関数の一つで、キーボードからデータを所定の形式で読み取り、指定した変数に格納することができます。この記事では、scanf 関数の使い方を詳しく紹介し、サンプルコードをいくつか紹介します。まずはscanf関数を見てみましょう

PHP 開発におけるフォーム検証とデータ入力検証を最適化する方法 [はじめに] Web 開発において、フォーム検証とデータ入力検証は、ユーザーが入力したデータの合法性と安全性を確保するための非常に重要なステップです。ユーザーの入力エラーや悪意のある入力を回避できるだけでなく、SQL インジェクションなどの攻撃からデータベースやアプリケーションを保護することもできます。この記事では、PHP 開発におけるフォーム検証とデータ入力検証を最適化する方法と、具体的なコード例を紹介します。 [1. サーバー側の検証] 最初のステップは、ユーザーに次の情報を提供することです。

PyCharm は、Python 開発者がよく使用する統合開発環境 (IDE) であり、コードの品質と効率を向上させるための豊富な機能とツールを提供します。その中でも、コードの標準化と書式設定は、高品質のコードを作成するための重要な手順の 1 つです。この記事では、開発者が Python コードを標準化してフォーマットするのに役立つ、PyCharm の実践的なテクニックと関数をいくつか紹介します。 PEP8 仕様の自動チェック PEP8 は、Python が公式に提供するコード仕様ガイドであり、一連のコーディング スタイル、命名規則などが含まれています。

フロントエンド フレームワークの継続的な開発と人気により、シングルページ アプリケーションは Web アプリケーションの主流の 1 つになりました。中でも Vue.js は、そのシンプルさ、学習の容易さ、効率的な開発により開発者に愛されています。ただし、従来の Web アプリケーションとは異なり、シングルページ アプリケーションはバックエンド API と対話してデータを取得し、さまざまな操作を実行する必要があります。フロントエンドとバックエンド間の対話をより便利、効率的、そして保守しやすくするためには、Vue プロジェクトで RESTful API の標準化された実践を設計することが非常に重要です。 REST (リプレ)

C++ の入出力ステートメントには、1. scanf() ステートメント、キーボードからのデータ入力の読み取りに使用されます、2. printf() ステートメント、指定された形式の情報を標準出力デバイスに出力するのに使用されます、3. cout ステートメント、標準出力を表します、出力に cout を使用する場合は、「<<」演算子に従う必要があります; 4. cin ステートメントは標準入力を表し、入力に cin を使用する場合は、「>>」演算子に従う必要があります。
