一個簡單例子說明php自定義函數過濾字符串功能實現!

2020-12-17 編程小學生

有時候用戶在網站上發布內容或者留言時,系統提示使用了禁止詞語禁止發布。為了避免用戶在網站上發布違規違法內容,網站開發人員為了規範網站內容採取了過濾字符串的手段,今天為大家講解一下自定義函數過濾字符串。

實現過程

1、製作用戶評論文本框和評論提交按鈕。

1、創建php文件。

2、定義具有過濾功能的驗證函數,設定過濾規則。

3、調用函數去判斷用戶提交內容是否符合規則。

代碼如下:

PHP編程實例:簡單的自定義函數過濾字符串功能實現!

PHP知識點總結:

1、form標籤的action屬性

form標籤的action屬性表示向何處提交表單數據,當action為空時表示數據提交還是這個頁面本身。

2、php自定義函數

我們把內容過濾(過濾字符串功能)功能語句都寫到函數裡方便後續的調用。函數是可以實現特定功能的代碼塊(程序),大部分程式語言都有這個概念,函數可以更好實現模塊功能。函數可以分為父函數和子函數,他們之前可以相互調用。上面代碼中我們聲明了一個str函數,它具有過濾特定內容(過濾字符串)的功能。

3、數組和php系統函數

這個實例中我們先把我們要過濾的內容(版權、出版、圖書、影像)聲明成數組$array,再用implode()函數把數組轉換成字符串$repstr。數組是不能直接操作的,我們需要把數組轉換成字符串再進一步處理。

4、if語句、preg_match() 函數和正則表達式

if語句作用是根據不同的條件執行不同的動作,如果用戶輸入內容出現了禁止內容提示「使用了系統禁止詞語,重新填寫」頁面重新定位到index.php。如果用戶輸入內容不包括禁止內容則輸出提交成功並輸出用戶提交內容。

preg_match() 函數是處理正則表達式匹配,成功返回 1 ,否則返回 0。「/$str/」是一個簡單的正則表達式表示匹配函數的參數即用戶輸入內容,preg_match("/$str/",$repstr)意思用戶輸入內容($str)和設定禁止的內容($repstr)進行匹配,如果匹配成功返回1,if執行為真的內容。如果匹配不成功,返回0,則if執行else內容。

5、empty()函數

為了避免出現非預期的效果,這是使用是empty()函數判斷$_POST['sub'](提交的內容)傳遞參數是否存在。

上面實例只是簡單介紹了字符串過濾的原理,如果要運用的話需要把過濾數據存儲在資料庫中,而不是一個簡單的數組。

代碼運行結果如下圖:

關於自定義函數過濾字符串功能先聊到這,每天學習一個知識點,每日寄語-「滴水穿石,不是力量大,而是功夫深。」

相關焦點

  • PHP自定義函數刪除字符串中出現的空白、回車、換行
    我寫了一個PHP自定義函數,使用它可以刪除代碼中的多餘空格,回車,換行,使用方法很簡單,只需要把下面的代碼複製到PHP文件中,在需要用到的位置引用即可(自定義函數你懂得);  使用方法:  $a = trimall($str);  $a就是刪除處理之後的內容哦
  • PHP編程實例:自定義函數實現簡單數字加密和解密算法
    加密和解密一般用於電子商務,但是一般的網站開發中也會用涉及到到加密和解密,特別是文件處理上,今天為大家講解一個自定義函數簡單的數字加密/解密算法實例。實現過程1、製作form表單提交框一個文本輸入框和一個提交按鈕。2、創建php腳本文件。3、定義加密數字和解密數字的函數。
  • LAMBDA函數,讓EXCEL自定義函數告別VBA
    一提起自定義函數(UDF),很多表哥表姐想到的Alt+F11打開VBE編輯器,寫一個Function.隨著EXCEL版本的更新,EXCEL也像其它程式語言一樣,推出了表達式函數LAMBDA,通過這個函數加名稱管理器,我們可以在編寫簡短的自定義函數時,不再需要使用VBE窗體。
  • PHP函數漏洞審計之addslashes函數-實例分析蘋果CMS
    addslashes() 函數返回在預定義字符之前添加反斜槓的字符串。(PHP 4, PHP 5, PHP 7)預定義字符是:單引號(')雙引號(")反斜槓(\)NULL提示:該函數可用於為存儲在資料庫中的字符串以及資料庫查詢語句準備字符串。
  • mysql實現php函數explode功能mysql_explode
    我article表中的記錄如下,因為多個關鍵詞存放在一個欄位上,不利於做排序統計操作,例如我想要統計哪個關鍵詞的數量最多就是個大問題了:id keywords1 九陽神功,萬川歸海,橫掃千軍,乾坤大挪移2 殺破狼,落日十三劍
  • php str-ireplace()函數替換字符串/數組中的一些字符
    str_ireplace()函數定義及用法在php中,str_ireplace()函數是使用來替換字符串或數組中的一些字符(不區分大小寫),返回替換後的新字符串或數組,原字符串或數組不變;str_ireplace()函數如果處理的數據是一個數組:該函數將對數組中的每個元素進行查找和替換
  • 看代碼學安全(9 )str_replace函數過濾不當
    漏洞解析 :這一題考察的是一個 str_replace 函數過濾不當造成的任意文件包含漏洞。在上圖代碼 第18行 處,程序僅僅只是將 ../ 字符替換成空,這並不能阻止攻擊者進行攻擊。./ ,在經過程序的 str_replace 函數處理後,都會變成 ../ ,所以上圖程序中的 str_replace 函數過濾是有問題的。
  • 如何使用PHP生成隨機字符串
    源 / php中文網      源 / www.php.cn使用PHP生成隨機,唯一,字母數字字符串。例子:方法1:第一種方法是最容易理解的方法。它可以實現如下:-將所有可能的字母存儲到字符串中。-生成從0到字符串長度-1的隨機索引。-列印該索引處的字母。-執行此步驟n次(其中n是所需字符串的長度)。
  • 代碼審計Day9 - str_replace函數過濾不當
    str_replace 函數過濾不當造成的任意文件包含漏洞。/ ,所以上圖程序中的 str_replace 函數過濾是有問題的。功能 :子字符串替換定義 : mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ]
  • 【每日一題】php截取字符串幾個實用的函數
    php$str ="phpddt.com";echo substr($str,2);echo substr($str,2,3);echo substr($str,-2);?>但是當你截取中文字符串的時候很容易出現亂碼,因為一個漢字是兩個字節,而一個英文字母是一個字節。
  • C語言字符串處理函數之字符串轉換、查詢函數
    strchr()遇到'\0'會停止,例子:再來做一個簡單的拓展,寫個小函數,實現功能呢就是把給定字符串中某個字符出現的所有位置都用另外一個字替換,如下例子,將"abcabc"中的'c'替換為'@':memchr
  • 巧用 PHP 數組函數
    這裡簡單的介紹一下這兩個函數的作用,首先是 array_flip 函數,這個函數的功能是「將數組的鍵和值對調」,也就是鍵名變成值,值變成鍵名。我們傳遞的 $keys 參數經過這個函數便從 [0 => 'id', 1 => 'name'] 轉變為了 ['id' => 0, 'name' => 1]。
  • PHP配置函數ini_get()的具體用法介紹
    PHP配置函數ini_get()的具體用法介紹 PHP配置函數ini_get()的主要功能就是獲取配置文件中的選項值。如果我們能合理運用,還可以發揮出它的許多功能供我們使用。
  • 類的自動加載和自定義自動加載函數PHP
    當在我們的代碼的某行語句中,需要一個類,而該類的定義還沒有在這之前的代碼中出現的時候,此時,系統就會自動調用一個函數(自動加載函數),在該函數中我們可以寫代碼來加載類文件。比如:<?phpfunction __autoload( $class_name ){此時,在這裡,我們需要來完成加載B這個類文件的工作。
  • 【VBA自定義函數】315個自定義函數
    數字格式,轉換為2004-5-10的日期格式的函數166、工齡計算:167、計算日期差,除去星期六、星期日的自定義函數168、這是一個將英文字反轉的自定函數169、關於個人所得稅的170、一個能計算是否有重複單元的函數171、試編寫數字金額轉中文大寫的函數172、人民幣大小寫轉換函數173、獲取區域顏色值自定義函數174、獲取活動工作表名的自定義函數175、顯示在「插入函數」對話框的「或選擇類別」下拉列表中
  • 使用ollvm自定義簡單的字符串加密
    題目主要是為了能熟練ollvm中如何進行一個簡單的加密,以及c++部分怎麼生成對應的IR指令來達到像c++函數效果。所以主要我們的思路可以切換成:2、根據C++的算法。生成一份IR指令來為我們提供參考4、根據參考的IR指令來生成我們需要的加密和解密函數做完這個題目,基本就可以對ollvm的工作原理有一定的了解,並且改造屬於自己的加密或者混淆了。
  • 給PHP開發者講講PHP源碼(2)
    這就是一個典型的頭文件(以.h後綴結尾的文件)的樣子:單純的函數列表,函數在其他地方定義。第二個連結更有趣:它帶我們到string.c文件,這個文件包含了函數真正的原始碼。在我帶你一步一步地查閱這個函數之前,我推薦你自己嘗試理解這個函數。這是一個很簡單的函數,儘管你不知道真正的細節,但大多數代碼看起來都很清晰。
  • php7異常與錯誤處理和自定義異常
    生效時產生該錯誤DivisionByZeroError (分母為零) 運算過程中例如除法,分母為0除了這幾種情況,其餘全部為異常 異常處理在以前的 php5.X 中 並且不能被 try-catch 捕捉得到,到了 php 7.x 中,定義了一個 Throwable
  • PHP函數implode()與explode()函數的不同之處
    PHP函數implode()與explode()函數的不同之處 PHP函數implode()的作用主要是把數組元素組合為一個字符串,相關語法為:implode(separator,array)。
  • php字符串常用處理,運算符和幾個常用的字符串函數
    本篇將介紹php字符串常用處理,運算符和幾個常用的字符串函數。有興趣的朋友可以了解一下!php是一門很受歡迎的程式語言之一,由於它的語法簡單易學,迎來了一大批的自學者,小編就是其中一個。php確實相當於其它語言(java、c#等等)比較簡單,但是對一個毫無程式語言基礎的人來說,還是有一定難度的。