PHP檢測陣列中的每個值是否含有特殊字元
/**
* [TestArray 檢測陣列是一維還是二維]
* @E-mial [email protected]
* @TIME 2017-04-07
* @WEB http://blog.iinu.com.cn
* @param [type] $array [陣列]
*/functionTestArray($array){if(is_array($array)){foreach($array as $v){if(is_array($v)){
$Int_Array = array('Int'=>2,'Test' =>'檢測為二維陣列');}else{
$Int_Array = array('Int'=>1,'Test'=>'檢測為一維陣列');}}}else{
$Int_Array = array('Int'=>3,'Test'=>'檢測為不是陣列');}return $Int_Array;}/**
* [剔除掉危險字元]
* @E-mial [email protected]
* @TIME 2017-04-07
* @WEB http://blog.iinu.com.cn
* @param [資料] $val [要處理的資料]
* @return [type] [description]
*/ function remove_xss($val){
$val = preg_replace('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/','', $val);
$search ='abcdefghijklmnopqrstuvwxyz';
$search .='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$search .='[email protected]#$%^&*()';
$search .='~`";:?+/={}[]-_|\'\\';for($i =0; $i < strlen($search ); $i++){
$val = preg_replace('/(&#[xX]0{0,8}'. dechex(ord($search[$i])).';?)/i', $search[$i], $val);
$val = preg_replace('/(�{0,8}'. ord($search[$i]).';?)/', $search[$i], $val);}// now the only remaining whitespace attacks are \t, \n, and \r
$ra1 = array('javascript','vbscript','expression','applet','meta','xml','blink','link','style','script','embed','object','iframe','frame','frameset','ilayer','layer','bgsound','title','base');
$ra2 = array('onabort','onactivate','onafterprint','onafterupdate','onbeforeactivate','onbeforecopy','onbeforecut','onbeforedeactivate','onbeforeeditfocus','onbeforepaste','onbeforeprint','onbeforeunload','onbeforeupdate','onblur','onbounce','oncellchange','onchange','onclick','oncontextmenu','oncontrolselect','oncopy','oncut','ondataavailable','ondatasetchanged','ondatasetcomplete','ondblclick','ondeactivate','ondrag','ondragend','ondragenter','ondragleave','ondragover','ondragstart','ondrop','onerror','onerrorupdate','onfilterchange','onfinish','onfocus','onfocusin','onfocusout','onhelp','onkeydown','onkeypress','onkeyup','onlayoutcomplete','onload','onlosecapture','onmousedown','onmouseenter','onmouseleave','onmousemove','onmouseout','onmouseover','onmouseup','onmousewheel','onmove','onmoveend','onmovestart','onpaste','onpropertychange','onreadystatechange','onreset','onresize','onresizeend','onresizestart','onrowenter','onrowexit','onrowsdelete','onrowsinserted','onscroll','onselect','onselectionchange','onselectstart','onstart','onstop','onsubmit','onunload');
$ra = array_merge($ra1, $ra2);
$found =true;while($found ==true){
$val_before = $val;for($i =0; $i <sizeof($ra); $i++){
$pattern ='/';for($j =0; $j < strlen($ra[$i]); $j++){if($j >0){
$pattern .='(';
$pattern .='(&#[xX]0{0,8}([9ab]);)';
$pattern .='|';
$pattern .='|(�{0,8}([9|10|13]);)';
$pattern .=')*';}
$pattern .= $ra[$i][$j];}
$pattern .='/i';
$replacement = substr($ra[$i],0,2).''. substr($ra[$i],2);
$val = preg_replace($pattern, $replacement, $val);if($val_before == $val){
$found =false;}}}return $val;}/**
* [getData 檢測陣列中的每個值是否含有特殊字元]
* @E-mial [email protected]
* @TIME 2017-05-03
* @WEB http://blog.iinu.com.cn
* @param [array] $data [要檢測的陣列-一維或者二維]
* @return [data] $res [返回剔除後的陣列]
*/function getData($data){
header('Content-type:text/html;charset=utf-8');//判斷是否為空if(!empty($data)){//檢測陣列型別 if(TestArray($data)['status']==1){
$i =0;foreach($data as $k=>$v){
$data_mer[$i][$k]= remove_xss($v);
$i++;}
$res['code']= $data_mer;}else{foreach($data as $k=>$v){
$data_mer[$k]= remove_xss($v);}
$res['code']= $data_mer;}}else{
$res = array('status'=>2,'str'=>'資料不能為空');}return $res;}
本文出至:新太潮流網路部落格
相關推薦
PHP檢測陣列中的每個值是否含有特殊字元
本文出至:新太潮流網路部落格 /** * [TestArray 檢測陣列是一維還是二維] * @E-mial [email protected] * @TIME 2017-04-07 * @WEB http://blog.iinu.com.cn
PHP檢測數組中的每個值是否含有特殊字符
end mouseover onfinish -type desc bmi utf sta meta 本文出至:新太潮流網絡博客 /** * [TestArray 檢測數組是一維還是二維] * @E-mial [email protected] * @TIM
php 對比兩個陣列中的值是否相等
$a = ['1','2','4','3'];//提交答案 $b = ['2','1','3'];//正確答案 $state = $this->diffArray($b, $a); echo '<pre>'; print_r($state);die; /**
定義一個數組,陣列初始長度由控制檯獲取 。隨後手動給陣列中每個元素賦值,陣列滿後將陣列長度擴充二倍並輸出,清空陣列中所有元素且值繼承陣列長度,並重新進行手動新增元素,無限死迴圈直至輸出-0後結束程式。
package com.tedu; import java.util.Arrays; import java.util.Scanner; /** * 需求: * 定義一個初始陣列,陣列初始長度由控制檯獲取 * 隨後手動給陣列中每個元素賦值,陣列滿後將陣列長度擴充二倍輸
PHP判斷陣列中是否有重複值並找出重複值
可以用來測試需要唯一憑據號碼的,是否有重複值,不過一般直接使用uuid了,簡單粗暴就解決問題,這個就簡單的測試生成的資料是否有重複值吧 <?php /* * @Author: wyy * @Date: 2019-01-09 13:34:16 * @Email:
PHP取陣列中幾個數值求和等於指定值的演算法
沒有找到PHP版本的 貼一下參考C#的 $_arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); function getSetBySum($_array, $_sum, $_index, $_current, $_return=''
在PHP裡.如何定義二維陣列和賦值.並且把陣列中的值填充到table中。
php: require 'smarty/libs/Smarty.class.php'; $smarty = new Smarty;//設定各個目錄的路徑,這裡是安裝的重點 $smarty->template_dir ="smarty/templates/temp
解析js中的鍵值對 及 陣列的定義 及檢測陣列中是否有重複的資料
要解析的資料 var obj = { "contractName":"合同","contractType":"合同型別","invoiceDate":"付款時間","amount":"付款銀行", "taxAmount":"付款金額","paymen
php檢查陣列中是否存在一個值
PHP in_array() 函式檢查陣列中是否存在某個值,如果存在則返回 TRUE ,否則返回 FALSE 。 語法: bool in_array( mixed needle, array a
php 把陣列中的鍵名作為變數名鍵值作為變數
<?php /** * php 把陣列中的鍵名所為變數名鍵值作為變數 */ $arr=array('a'=>1,'b'=>2,'c'=>3,'d'=>5,'e'=
php 根據陣列中的指定鍵值排序,根據陣列中指定鍵值分組
一、 根據陣列中的指定鍵值排序1.1 原陣列如下: $person = array( array('id'=>1,'name'=>'fj','weight'=>100,'height'=>180),
js的二分法求陣列中某個值的索引
為了解決最後一個數字無法顯示正確索引的問題,我直接加了一個判斷最後一個索引的判斷 <!DOCTYPE html> <html> <head> <title>123</title> <meta charset="utf-
通過泛型查詢不同型別陣列中的值
實現效果: 知識運用:(泛型方法) 實現程式碼: public int Finder<T>(T[] arr, T item) //定義泛型方法 { for (int i = 0; i < arr.
分享:PHP從陣列中找到指定元素的位置
群裡有人問,有個陣列五個元素 分為1到5 現在要求 迴圈找出3元素的索引,怎麼做效能才是最高。 我不知道哪個效能最高,但是我想提出可以用多種方式進行查詢,然後進行比較選擇。 我想,最簡單最基礎的 應該是迴圈,迴圈到它,那就是它
【Java】給定一個字串str,和一個字母ch,請實現相應的程式碼求出一個數組,使陣列中每個數字表示該位置與字母ch之間的最短距離。 比如str=”lexinfintech” ch=”i” 則輸出為:[3,2,1,0,1,1,0,1,2,3,4,5]
import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * @author: ycz * @date: 2018/12/17 0017 16:43 * @description: */ p
不使用迴圈,建立一個長度為100的陣列,並使陣列的每個值等於它的下標(待更新)
這是我一道很早接觸的題目,整理過幾次都覺得不夠好。原出題人主要靠對es6語法的掌握,結果知乎大神們五花八門的答案真的重新整理我對JavaScript的認識。 這裡,先記錄長度較短的答案,以後再解釋難度較大的答案。 // 先建立一個長為100的稀疏陣列 let
PHP從陣列中刪除元素的四種方法例項
刪除一個元素,且保持原有索引不變 使用 unset 函式,示例如下: <?php $array = array(0 => "a", 1 => "b", 2 => "c")
js中間隔一段時間列印陣列中的值
間隔一段時間列印陣列中的一個值 在我們的實際操作中,時常會遇到這樣一個問題,比如:有一個數組 arr = [1,2,3,4,5]; 要求間隔1s中列印陣列中的一個值,與停止1s在列印陣列中的值 先列舉兩個停止1s列印陣列中的值 利用for迴圈和定時器來實現
javascript計算陣列中某值的出現次數
需求 返回一個數組某值出現的次數 輸入:一個數組 輸出:需要計數的元素 程式碼 /* 傳入一個數組 返回一個數組某值出現的次數 */ const countOccurences
用棧來實現求陣列中每個元素的左邊第一個小和右邊第一個小 -2014-03-26 20:35
陣列中每個元素的左邊第一個小和右邊第一個小: 如[2,1,5,6,2,3]中5左邊第一個小的元素是1,右邊第一個小的元素是2;如何在複雜度為O(n)的情況下計算出所有元素的左邊第一個小和右邊第一個小? 這是leetcode中的“ Largest Rectangle in H