❶ php怎么过滤
使用单独一个模块,这个模块负责所有的安全处理。
这个模块被包含在所有公开的 PHP 脚本的最前端(或者非常靠前的部分)。
参考下面的脚本security.inc
<?php
switch($_POST['form'])
{
case'login':
$allowed=array();
$allowed[]='form';
$allowed[]='username';
$allowed[]='password';
$sent=array_keys($_POST);
if($allowed==$sent)
{
include'/inc/logic/process.inc';
}
break;
}
?>
❷ 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,应该很容易看懂,在php里面有正则表达式的相关函数,比如替换/匹配都很方便。
以下是几个例子:
正则表达式说明
/\b([a-z]+) \1\b/gi一个单词连续出现的位置
/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/将一个URL解析为协议、域、端口及相对路径
/^(?:Chapter|Section) [1-9][0-9]{0,1}$/定位章节的位置
/[-a-z]/A至z共26个字母再加一个-号。
/ter\b/可匹配chapter,而不能terminal
/\Bapt/可匹配chapter,而不能aptitude
/Windows(?=95 |98 |NT )/可匹配Windows95或Windows98或WindowsNT,当找到一个匹配后,从Windows后面开始进行下一次的检索匹配。
❹ PHP 如何过滤特殊字符 如 ◆ )- : 、 、!! / 等
PHP 中的 preg_replace() 函数可以实现
实例:只匹配中文
<?php
$str="php)!!编程";
echopreg_replace("/[^x{4e00}-x{9fa5}]/iu",'',$str);
?>
❺ php字符串过滤
$str = preg_replace("/^.+=(.+)$/", "新内容\\1", $str); //过滤等于号前面的所有字符串(包括等于号)
$str = preg_replace("/^(.+)=.+$/", "\\1"."新内容", $str); //过滤等于号后面的所有字符串(包括等于号)
❻ php正则表达式过滤某些HTML标签代码
如果只要
<b>
标签,不用“过滤”的方法,用“提取”的方法更简单。
$str
=
'<img
src="xxx"><b>aaa</b><br>\n<b>b\nbb</b><span
style="color:#FF0000;">yyy</span>';
$pattern
=
'/<b>(((?!<\/b>).)*)<\/b>/mi';
preg_match_all($pattern,
$str,
$matches,
PREG_SET_ORDER);
print_r($matches);
输出
Array
(
[0]
=>
Array
(
[0]
=>
<b>aaa</b>
[1]
=>
aaa
[2]
=>
a
)
[1]
=>
Array
(
[0]
=>
<b>b\nbb</b>
[1]
=>
b\nbb
[2]
=>
b
)
)
$matches[0][0],$matches[1][0]
是你想要的结果?
❼ php过滤标签如何实现,求高手指导
正则表达式:[.*?]
替换为空
完整的php程序如下:
<?php
$str='[backcolor=#ffffff][color=#333333][font=宋体,tahoma,arial]呵呵1233我是简介[/font][/color][/backcolor]';
$str=preg_replace('#[.*?]#','',$str);
echo$str;
?>
运行结果:
呵呵1233我是简介
❽ PHP如何过滤单引号
<?php
functiongetpost($arr){
if(get_magic_quotes_gpc()){
$arr=is_array($arr)?array_map('stripslashes',$arr):stripslashes($arr);
}
if(is_array($arr)){
foreach($arras$key=>$val){
$arr[$key]=htmlspecialchars($val,ENT_QUOTES);//html实体转换
$arr[$key]=mysql_real_escape_string($arr[$key]);//防注入替换
}
}else{
$arr=htmlspecialchars($arr,ENT_QUOTES);//html实体转换
$arr=mysql_real_escape_string($arr);//防注入替换
}
return$arr;
}
?>
//该函数是我自己写的一个转换函数,主要用于防sql注入和跨站攻击,参数可以是数组,或字符串
//$post_array=getpost($_POST);//即可完成对敏感字符的处理
❾ PHP字符串过滤
可以用正则实现。给定字符串的规律是3冒号1分号中,前两个冒号之前是数字,需要的是第三个冒号与分号之前的部分。可如下处理:
<?php
$string = "6939376:28407:包装方式:包装;5392114:75367881:重量(g):500;20000:7343430:品牌:蒙园;";
preg_match_all("/[^:\d]+:[^;]+;/", $string, $out);
$rst = implode("", $out[0]);
echo $rst;
?>
$rst为"包装方式:包装;重量(g):500;品牌:蒙园;"。已经测试是可行的(php5),如有问题欢迎继续交流
❿ php正则过滤掉<p></p>
<p>(<img([^>]*)/>)</p>
这样子就可以提出图片出来了