『壹』 PHP怎么过滤非法函数
靠,来楼上的用源的了那么繁琐吗?php内值函数htmlspecialchars搞定<?php
$a = "<b>asf</b><script>alert('asdf')</script>哈哈";
echo htmlspecialchars($a);
?>自己代码看效果.
『贰』 php过滤指定字符的函数
explode — 使用一个字符串分割另一个字符串
array explode ( string $delimiter , string $string [, int $limit ] )
此函数返回由字符串组成的数组,每个元素都是 string 的一个子串内,它容们被字符串 delimiter 作为边界点分割出来。
<?php
//示例1
$pizza="";
$pieces=explode("",$pizza);
echo$pieces[0];//piece1
echo$pieces[1];//piece2
//示例2
$data="foo:*:1023:1000::/home/foo:/bin/sh";
list($user,$pass,$uid,$gid,$gecos,$home,$shell)=explode(":",$data);
echo$user;//foo
echo$pass;//*
?>
『叁』 php如何过滤数组中的空元素使用那个函数
PHP中去除一个数组中的空元素方法很多,但是有一个系统函数是最方便的:
array array_filter ( array $array [, callable $callback )
此函数是回依次将 “$array ” 数组中答的每个值传递到 “$callback” 函数。如果 “$callback”函数返回 TRUE ,则 “$array” 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
如果只需去除数组中的空元素的话,"$callback"可以省略,例如数组:
$arr1=array( "a" => 1 , "b" => 0 , "c" => 3 , "d" => "" , "e" => 5 ,"f"=>array());
//执行
$arr1=array_filter ($arr1);
//结果为
array( "a" => 1 , "c" => 3 , "e" => 5 );
『肆』 php自定义一个函数用来过滤表单的。。比如说filter($_POST);调用filter函数的时
|function filter($array){
foreach($array as $k=>$v){
$array[$k]=htmlspecialchars(strip_tags($v));
$array[$k]=eregi('select|容insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile',$array[$k];
}
}
『伍』 php用回调函数过滤数组中的单元
array_filter
(PHP 4 >= 4.0.6, PHP 5, PHP 7)
array_filter — 用回调函数过滤数组中的单元
1.说明
array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array
依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 true,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
2.参数
array
要循环的数组
callback
使用的回调函数
如果没有提供 callback 函数, 将删除 array 中所有等值为 false 的条目。更多信息见转换为布尔值。
flag
决定callback接收的参数形式:
ARRAY_FILTER_USE_KEY - callback接受键名作为的唯一参数
ARRAY_FILTER_USE_BOTH - callback同时接受键名和键值
3.返回值
返回过滤后的数组。
更新日志
版本 说明
5.6.0 添加可选的参数 flag,以及常量 ARRAY_FILTER_USE_KEY 和 ARRAY_FILTER_USE_BOTH。
范例
示例 #1 array_filter() 例子
1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);
echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
?>
『陆』 几个有用的php字符串过滤,转换函数
explode — 使用一个字符串分割另一个字符串
array explode ( string $delimiter , string $string [, int $limit ] )
此函数返回由字符串组成的数组,每个专元素都是 string 的一个子属串,它们被字符串 delimiter 作为边界点分割出来。
<?php// 示例 1$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";$pieces = explode(" ", $pizza);echo $pieces[0]; // piece1echo $pieces[1]; // piece2 // 示例 2$data = "foo:*:1023:1000::/home/foo:/bin/sh";list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);echo $user; // fooecho $pass; // * ?>
『柒』 php中过滤数组中的某个值
<?php
$bb=array('a');
$aa=array('a','b','c','d','e','f');
$cc=array_diff($aa,$bb);
print_r($cc);
?>
array_diff 返回来2个数组自的差集,数组元素多的放前面
『捌』 求php防止被sql 注入攻击的过滤用户输入内容的函数
functionclean($v){
//判断magic_quotes_gpc是否为打开
if(!get_magic_quotes_gpc()){
//进行magic_quotes_gpc没有打开的情况对提交数据的过滤
$v=addslashes($v);
}
//把'_'过滤掉回
$v=str_replace("_","\_",$v);
//把'%'过滤掉
$v=str_replace("%","\%",$v);
//把'*'过滤掉
$v=str_replace("*","*",$v);
//回车转换答
$v=nl2br($v);
//html标记转换
$v=htmlspecialchars($v);
return$v;
}
如果需要,还可以屏蔽一下危险字符,例如insert, update, delete等
//将update去掉
$v=str_replace("update","",$v);
最后,在拼装sql语句时,用户输入的东西,全括在单引号内
『玖』 看到很多php的安全过滤函数,经常把一些字符给替换掉,那用户输入的信息改变了不是很不好吗求解
正像你所说的,安全过滤,为了安全而限制用户的行为是必须的,你想想这样的限制针专对的是什么属用户?是有意危害网站安全的用户。举几个例子:
把标题中的html标签过滤。因为标题一般都是纯文本,1.html标签会导致布局错乱2.会包含危险script3.把引号等字符编码为html实体并不会影响其最终显示效果;
把正文中的<script>标签过滤掉。因为普通用户根本不会去执行script。所以我们一般有两种做法:1.把script去掉,2.用html实体字符编码标签,这样在显示文章既可以显示代码段又不会执行代码了;
过滤查询参数的单引号。这是为了防止sql注入,一般有三种方法来实现:1.给引号添加反斜线2.去掉引号3.用sql的prepare动态绑定参数;
总之,不要信任任何的用户输入,限制还是为了更多的普通用户更好的使用咱们的服务。
『拾』 请问用PHP如何过滤空格内置函数或者正则表达式都可以
你是头尾空格吗?
用trim函数
如果是其他位置用str_replace(" ","","$array");
str_replace(find,replace,string,count)
参数 描述
find 必需。规定要查找的值内。
replace 必需。规定替容换 find 中的值的值。
string 必需。规定被搜索的字符串。
count 可选。一个变量,对替换数进行计数。