我找到了如何用动态多维数组删除html标签:
function strip_tags_deep($value){
return is_array($value) ? array_map('strip_tags_deep', $value) : strip_tags($value);
}
现在,我想将strip_tags仅应用于键值...
function strip_tags_deep($value){
return is_array($value) ? array_map('strip_tags_deep', $value) : /* IF $KEY == "valuetest" THEN */ strip_tags($value);
}
我该怎么做?
编辑:Thx to Prisoner =)
我的新功能是:
function strip_tags_deep($value, $key = null){
if(is_array($value)){
return array_map('strip_tags_deep', $value, array_keys($value));
}else{
if($key === '#title'){
return strip_tags($value));
}
return $value;
}
}
但她会返回一个数组但是......(< - 见edit2 bellow) 但是,如果我这样做..
function strip_tags_deep($value, $key = null){
if(is_array($value)){
return array_map('strip_tags_deep', $value);
}else{
//if($key === '#title'){
return strip_tags(html_entity_decode($value));
//}
return $value;
}
}
我的结果与第一次尝试相同。嗯,为什么第三个参数的array_map有问题?
edit2:示例数组
"arrayvalue1"
"arrayvalue11"
"a" => "avalue"
"b" => "bvalue"
"arrayvalue111"
"c" => "cvalue"
成为“'strip_tags_deep',$ value,array_keys($ value)”:
0
0
0 => "avalue"
1 => "bvalue"
1
0 => "cvalue"
我丢失了“数组名称”:/(原谅我可怜的英语)
答案 0 :(得分:1)
function strip_tags_deep($value, $key = null){
if(is_array($value)){
return array_map('strip_tags_deep', $value, array_keys($value));
}else{
if($key === 'valuetest'){
return strip_tags($value);
}
return $value;
}
}
这将输出:
var_dump(strip_tags_deep(array('valuetest'=>'test<>'))); // array(1) { [0]=> string(4) "test" }
var_dump(strip_tags_deep(array('tests'=>'test<>'))); // array(1) { [0]=> string(6) "test<>" }