收藏一些规范化输入输出的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 Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

如何通过PHP代码规范规范性能优化引言:随着互联网的迅速发展,越来越多的网站和应用程序基于PHP语言开发。在PHP开发过程中,性能优化是一个至关重要的方面。一个高性能的PHP代码可以显著提高网站的响应速度和用户体验。本文将探讨如何通过PHP代码规范来规范性能优化,并提供一些实际的代码示例供参考。一、减少数据库查询在开发过程中,频繁的数据库查询是一个常见的性能

如何在GitLab中進行程式碼樣式檢查和標準化程式碼的風格和規格對於團隊專案的開發非常重要。統一的程式碼規範可以提高程式碼的可讀性、可維護性和可擴展性,減少潛在的Bug和錯誤。而在團隊開發中,透過使用版本控制工具如GitLab來管理專案程式碼,可以方便地進行程式碼樣式檢查和標準化。本文將介紹如何在GitLab中進行程式碼樣式檢查和標準化,並提供具體的程式碼範例。配置代碼檢查

如何解決:Java輸入輸出錯誤:檔案讀取錯誤在使用Java進行檔案讀取操作時,有時會遇到檔案讀取錯誤的情況。這種錯誤可能是由於檔案路徑不正確、檔案不存在、權限不足等原因導致的。本文將介紹如何解決Java輸入輸出錯誤中的檔案讀取錯誤問題,並提供程式碼範例來說明解決方法。確認檔案路徑是否正確在Java中讀取檔案時,首先要確保檔案路徑的正確性。檔案路徑可以是絕對路徑

PyCharm是Python開發者常用的整合開發環境(IDE),它提供了豐富的功能和工具來提高程式碼的品質和效率。其中,程式碼規範化和格式化是編寫高品質程式碼的重要步驟之一。本文將介紹PyCharm中一些實用的技巧和功能,幫助開發者標準化並格式化Python程式碼。自動PEP8規格檢查PEP8是Python官方提供的程式碼規格指南,包含了一系列關於程式碼風格、命名規格等

C語言中scanf函數的使用方法詳解及程式碼範例C語言是一門廣泛應用於各種軟體開發的程式語言,其中的輸入輸出函數在編寫程式時起著非常重要的作用。其中,scanf函數是C語言中用於讀取標準輸入的函數之一,它可以根據特定的格式從鍵盤讀取資料並將其儲存到指定的變數中。本文將詳細介紹scanf函數的使用方法,並提供一些實例程式碼進行範例。首先,我們來看看scanf函數

PHP開發中如何最佳化表單驗證和資料輸入驗證【引言】在Web開發中,表單驗證和資料輸入驗證是非常重要的步驟,它們能夠確保使用者輸入的資料的合法性和安全性。不僅可以避免使用者輸入錯誤或惡意輸入,還可以防止資料庫或應用程式遭受SQL注入等攻擊。本文將介紹如何最佳化PHP開發中的表單驗證和資料輸入驗證,並提供具體的程式碼範例。 【1.伺服器端驗證】第一步是在伺服器端對用戶提

隨著前端框架的不斷發展與普及,單頁應用程式成為Web應用程式中的主流之一。其中,Vue.js因其簡單易學和高效開發而備受開發者的喜愛。然而,與傳統Web應用程式不同,單頁應用程式需要與後端API互動來獲取資料和執行各種操作。為了使前端和後端之間的互動更加方便、高效和可維護,在Vue專案中設計RESTfulAPI的規範化實踐非常重要。 REST(Repre

c++輸入輸出語句有:1、scanf()語句,用於讀取從鍵盤輸入的資料;2、printf()語句,用於向標準輸出設備輸出指定的格式資訊;3、cout語句,表示標準輸出,使用cout進行輸出時需要緊接「<<」運算子;4、cin語句,表示標準輸入,使用cin進行輸入時需要緊接「>>」運算子。
