国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php中addslashes數組遞歸轉義例子

2024-09-04 11:46:34
字體:
來源:轉載
供稿:網友

我們知道在php中addslashes函數是一個安全過濾函數,可以對接受到的變量進行轉義以安全的入庫了,但如果我們是以數組形式傳參數過來,直接使用此函數無法進行操作了,下面我們一起來看看實現方法.

一、函數主要了addslashes 方法

addslashes() 函數在指定的預定義字符前添加反斜杠,這些預定義字符是:

•單引號 (')

•雙引號 (")

•反斜杠 (\)

•NULL

二、array_map 說明

array_map() 函數返回用戶自定義函數作用后的數組,回調函數接受的參數數目應該和傳遞給 array_map() 函數的數組數目一致,如果傳遞進來的參數 是數組形式則使用array_map方法進行參數的轉義.

我們在開發對于$_GET,$_POST等變量,代碼如下:

  1. /** 
  2.  * 遞歸方式的對變量中的特殊字符進行轉義 
  3.  * 
  4.  * @access  public 
  5.  * @param   mix     $value 
  6.  * 
  7.  * @return  mix 
  8.  */ 
  9. function addslashes_deep($value
  10.  if (emptyempty($value)) 
  11.  { 
  12.   return $value
  13.  } 
  14.  else 
  15.  { 
  16.   return is_array($value) ? array_map('addslashes_deep'$value) : addslashes($value); 
  17.  } 

如果是數組將無法完成安全轉義了,下面整理了一個例子,大家來看看.

方法三,可以參考該遞歸方法實現其他功能,代碼如下:

  1. <?php 
  2. $arr = array('a"aa',array("c'd",array('e"f'))); 
  3. function changes($arr){ 
  4.  foreach($arr as $k=>$v){ 
  5.   if (is_string($v)){ 
  6.    $arr[$k] = addslashes($v); 
  7.   }else if (is_array($v)) { //若為數組,則再轉義. 
  8.    $arr[$k] = changes($v); 
  9.   }  //開源軟件:Vevb.com 
  10.  } 
  11.   return $arr
  12. print_r(changes($arr)); 
  13. ?> 
  14. //輸入結果如下: 
  15. Array 
  16.     [0] => a\"aa 
  17.     [1] => Array 
  18.         ( 
  19.             [0] => c\'d 
  20.             [1] => Array 
  21.                 ( 
  22.                     [0] => e\"f 
  23.                 ) 
  24.         ) 

原理是非常的簡單,就是把數據利用foreach遍歷一個個數組值進行操作了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁津县| 大港区| 元氏县| 富裕县| 安达市| 新疆| 平远县| 青浦区| 五台县| 绥江县| 双城市| 巫山县| 微博| 建平县| 荥阳市| 开封市| 武乡县| 大洼县| 获嘉县| 遵化市| 潍坊市| 深州市| 凤冈县| 锡林郭勒盟| 江陵县| 那曲县| 绥滨县| 屏山县| 曲松县| 琼海市| 甘泉县| 宿松县| 柘城县| 安吉县| 如东县| 乌拉特前旗| 容城县| 什邡市| 商南县| 岫岩| 读书|