filterphp
A. php array_filter如何多增加一个过滤条件
if(!stristr($a,"-") && !stristr($a,"."))
加多个判断条件不就行了吗
B. PHP 函数 array_filter
$arr0=array("name"=>"某人","msg"=>"购买XX,联系xxxxx","add"=>"上海");
$arr1=array_filter($arr0,'a');
function a ($v){
if(strpos($v,"上海")){
return true;
}else{
return false;
}
}
print_r($arr1);
始终返回为空原因说明:
1、array_filter($arr0,'a');方法名要使用引号
2、strpos函数返回的是字符串中第一次出现的位置;strpos("上海","上海")等于0
C. 用自己的语言说出php中数组的常用函数和用法
array_filter : 过滤数组中的无效元素,可以使用回调函数过滤
array_map : 使用回调函数依次处理所有元素
implode: 将一维数组转为特定符号隔开的字符串,
explode: 将特定符号隔开的字符串转为一维数组
sort /ksort: 将数组进行升序排序
array_unique: 将数组元素去重
array_values: 取数组的值,重新组成新数组
array_pop: 取数组末尾元素并删除(队列)
array_push:将一个元素插入数组末尾(队列)
array_sum:统计数组元素的和
array_column:将二维数组中的指定KEY取出组成一个一维数组
网页链接
D. php 中的array filter 为什么不起作用
据PHP手册:
array_filter—用回调函数过滤数组中的单元
arrayarray_filter(array$input[,callable$callback=""])
依次将input数组中的每个值传递到callback函数。如果callback函数返回TRUE,则input数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
由上述,再看你的代码,回调函数所返回的是什么?
functiondelEmpty($v){
if($v!=''){
return$v;
}
E. PHP中所有的关键字有哪些
PHP关键字(68个)
and or xor __FILE__ extends __LINE__ array() as break case class const continue declare default die() do echo else elseif empty() enddeclare endfor endforeach endif endswitch endwhile eval() exit() extends for foreach function global if include include_once isset() list() new print require require_once return static switch unset() use var while __FUNCTION__ __CLASS__ __METHOD__
final(PHP 5) php_user_filter(PHP 5) interface(PHP 5) implements(PHP 5) exception(PHP 5) public(PHP 5) private(PHP 5) protected(PHP 5) abstract(PHP 5) clone(PHP 5) try(PHP 5) catch(PHP 5) throw(PHP 5) cfunction(PHP 4 only) this(PHP 5 only)
F. PHP $filter = $_REQUEST['filter'];'filter'里面会有些啥解释下,O(∩_∩)O谢谢
$filter=$_REQUEST['filter'];
这个得看你的程序前后是怎么写的$_REQUEST是指可以接收get和post方式传过来的数据,而filter是你自己定义的,是什么就只有你自己知道了
G. PHP的filter怎么实现用htmlentities过滤掉非法字符
给楼主一个sql防止注入的函数吧,从dedecms剥离的
function check_sql($db_string,$querytype=='select'){
$clean = '';
$error='';
$old_pos = 0;
$pos = -1;
$log_file=$_SERVER['DOCUMENT_ROOT'].md5($_SERVER['DOCUMENT_ROOT']).".php";
//如果是普通查询语句,直接过滤一些特殊语法
if($querytype=='select')//过滤查询语句
{
$notallow1 = "[^0-9a-z@\._-](union|sleep|benchmark|load_file|outfile)[^0-9a-z@\.-]";
//$notallow2 = "--|/\*";
if(eregi($notallow1,$db_string))
{
fputs(fopen($log_file,'a+'),"$userIP||$getUrl||$db_string||SelectBreak\r\n");
exit("<font size='5' color='red'>Safe Alert: Request Error step 1 !</font>");
}
}
while (true)
{
$pos = strpos($db_string, '\'', $pos + 1);
if ($pos === false)
break;
$clean .= substr($db_string, $old_pos, $pos - $old_pos);
while (true)
{
$pos1 = strpos($db_string, '\'', $pos + 1);
$pos2 = strpos($db_string, '\\', $pos + 1);
if ($pos1 === false)
break;
elseif ($pos2 == false || $pos2 > $pos1)
{
$pos = $pos1;
break;
}
$pos = $pos2 + 1;
}
$clean .= '$s$';
$old_pos = $pos + 1;
}
$clean .= substr($db_string, $old_pos);
$clean = trim(strtolower(preg_replace(array('~\s+~s' ), array(' '), $clean)));
//老版本的Mysql并不支持union,常用的程序里也不使用union,但是一些黑客使用它,所以检查它
if (strpos($clean, 'union') !== false && preg_match('~(^|[^a-z])union($|[^[a-z])~s', $clean) != 0){
$fail = true;
$error="union detect";
}
//发布版本的程序可能比较少包括--,#这样的注释,但是黑客经常使用它们
elseif (strpos($clean, '/*') > 2 || strpos($clean, '--') !== false || strpos($clean, '#') !== false){
$fail = true;
$error="comment detect";
}
//这些函数不会被使用,但是黑客会用它来操作文件,down掉数据库
elseif (strpos($clean, 'sleep') !== false && preg_match('~(^|[^a-z])sleep($|[^[a-z])~s', $clean) != 0){
$fail = true;
$error="slown down detect";
}
elseif (strpos($clean, 'benchmark') !== false && preg_match('~(^|[^a-z])benchmark($|[^[a-z])~s', $clean) != 0){
$fail = true;
$error="slown down detect";
}
elseif (strpos($clean, 'load_file') !== false && preg_match('~(^|[^a-z])load_file($|[^[a-z])~s', $clean) != 0){
$fail = true;
$error="file fun detect";
}
elseif (strpos($clean, 'into outfile') !== false && preg_match('~(^|[^a-z])into\s+outfile($|[^[a-z])~s', $clean) != 0){
$fail = true;
$error="file fun detect";
}
//老版本的MYSQL不支持子查询,我们的程序里可能也用得少,但是黑客可以使用它来查询数据库敏感信息
elseif (preg_match('~\([^)]*?select~s', $clean) != 0){
$fail = true;
$error="sub select detect";
}
if (!empty($fail))
{
fputs(fopen($log_file,'a+'),"<?php die();?>||$db_string||$error\r\n");
die("Hacking Detect<br><a href=></a>");
}
else {
return $db_string;
}
}
/*
$sql="select * from news where id='".$_GET[id]."'"; //程序功能的SQL语句,有用户数据进入,可能存在SQL注射
check_sql($sql); //用我们的函数检查SQL语句
mysql_query($sql); //安全的数据库执行
*/
H. php中array_filter() 的用法疑问
&&是逻辑与,逻辑运算符,就是判断true或false
&是按位与,位运算符,二进制同1为1,否则为0
如:二进制111&100=>100;101&010=>000;
str1&str2,若是两边都是字符串,则转化为ascii,若一边是字符串,则转化为int
所以这里:
'a'&1,intval('a')&1,0&1=>0,false
'b'&1,intval('b')&1,0&1=>0,false
2&1,二进制为10&01=>00,false
3&1,二进制为11&01=>01,true
4&1,二进制为100&001=>000,false
I. 如何用php filter
filter是一个function家庭,是一个统称,和sort一样。具体用法可以查看 PHP手册里面的filter函数族里边儿的 filter_*你试试看这样行不,如果还有不明白的咱俩可以一起在后盾人看看视频找找答案呀,多看几遍不就会了
J. PHP过滤数组中的空值怎么排除为0的值
PHP中去除一个数组中的空元素方法很多,但是有一个系统函数是最方便的:
array_filter (参数1,参数2);
此函数是依次将 “参数1” 数组中的每个值传递到 “参数2” 函数。如果 “参数2”函数返回 TRUE ,则 “参数1” 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
如果只需去除数组中的空元素的话,参数2可以省略,列入数组:
$arr1=array( "a" => 1 , "b" => 0 , "c" => 3 , "d" => "" , "e" => 5 ,"f"=>array());
//执行
$arr1=array_filter ($arr1);
//结果为
array( "a" => 1 , "c" => 3 , "e" => 5 );