<?php
class A {
public $t1 = '1212';
public $t2 = '2222';
}
class Html {
// public static function encode($txt, $charset='UTF-8') {
// return htmlspecialchars($text,ENT_QUOTES,$charset);
// }
// public static function encodeArray($data, $charset='UTF-8') {
// $d=array();
// foreach($data as $key=>$value)
// {
// if(is_string($key))
// $key=htmlspecialchars($key,ENT_QUOTES,$charset);
// if(is_string($value))
// $value=htmlspecialchars($value,ENT_QUOTES,$charset);
// else if(is_array($value))
// $value=self::encodeArray($value);
// $d[$key]=$value;
// }
// return $d;
// }
public static function _encodeArray(&$data, $charset='UTF-8') {
array_walk($data, array(self, 'walkHtmlspecialchars'), $charset);
}
private static function walkHtmlspecialchars(&$item, $key, $charset)
{
if(is_string($item)) {
$item = htmlspecialchars($item);
}elseif(!is_scalar($item)) {
if(!is_array($item)) {
$item = (array)$item;
}
array_walk($item, array(self, 'walkHtmlspecialchars'), $charset);
}
}
}
$o = new A;
$sweet = array('a' => 'apple<>', 'b' => 'banana');
$fruits = array('sweet' => $sweet, 'sour' => 'lemon', 'o' => $o);
Html::_encodeArray($fruits);
print_r($fruits);
利用array_walk做html編碼處理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.