请教高手
在PHP中如何屏蔽非法字符或不允许有非法字符进库?
就是用*替代屏蔽字符,
屏蔽字符的字库我有,是txt格式的,
怎么写php语句啊??
新手上路,请教各位前辈!最好通俗易懂的例子代码
分不多 谢谢了!
在PHP中如何屏蔽非法字符或不允许有非法字符进库?
就是用*替代屏蔽字符,
屏蔽字符的字库我有,是txt格式的,
怎么写php语句啊??
新手上路,请教各位前辈!最好通俗易懂的例子代码
分不多 谢谢了!
$b = '你他妈的什么东西 靠,什么JB玩意,早晚得收拾你'; //输入字
$out = preg_replace($a,"*",$b);
echo $out ;输出:
你他*什么东西 *,什么*玩意,早晚得收拾你
$a = array("/靠/","/妈的/","/草/","/jb/i","/鸡/");
按7楼这个格式存储,然后匹配 替换
最好是把那个字库txt 做成php array,然后include这个php ,然后就可以直接用我的那个代码了。
这样效率高。如果你非要用txt,那就只有先读取这个txt
$fp = fopen('xxx.txt',r);
$out = '';
while ($buffer = fgets($fd, 4096)) {
$out .=$buffer ;
}
fclose($fp);
$c = explode(' ',$out);//如果你的文本的关键字是用空格分隔的;
//如果你的文本,仅仅是文字,各个关键字没有用“/xxx/”这样的格式,那就加上下面一段代码
$a = array();
foreach($a as $v){
$a[] = "/".$v."/i";
}
然后再替换:
$b = '你他妈的什么东西 靠,什么JB玩意,早晚得收拾你'; //输入字
$out = preg_replace($a,"*",$b);
while ($buffer = fgets($fd, 4096)) {
这一句中$fd和4096是什么意思啊?
$out = '';
while ($buffer = fgets($fd, 4096))
应该是
$fp = fopen('xxx.txt',r);
$out = '';
while ($buffer = fgets($fp, 4096))
吧
require_once( 'smarty_inc.php');
require_once ('conn.php');
$name=$_POST["text"];
$title=$_POST["textfield"];
$content=$_POST["textarea"];
$fp=fopen('pbzf.txt',r);//pbzf.txt是屏蔽字库
$out='';
while($buffer=fgets($fp,4096)){
$out.=$buffer;
}
fclose($fp);
$c=explode('',$out);
$a=array();
foreach($a as $v){
$a[]="/".$v."/i";
}
$out=preg_replace($a,"*",$content);
if($_POST["text"]!=""&&$_POST["textfield"]!=""&&$_POST["textarea"]!="") {
insert($name,$title,$out);//inser是插入数据库,Insert into
}
$smarty=new Smarty();
$smarty->display('index.html');
?>
帮忙看下哪不对,因为我调试下来还是没有屏蔽掉
$c=explode('',$out);
$a=array();
foreach($a as $v){
$a[]="/".$v."/i";
}//
应该是
fclose($fp);
$c=explode('',$out);
$a=array();
foreach($c as $v){
$a[]="/".$v."/i";
}
<?php
require_once( 'smarty_inc.php');
require_once ('conn.php');
$name=$_POST["text"];
$title=$_POST["textfield"];
$content=$_POST["textarea"];
$fp=fopen('pbzf.txt',r);//pbzf.txt是屏蔽字库
$out='';
while($buffer=fgets($fp,4096)){
$out.=$buffer;
}
fclose($fp);
$c=explode(' ',$out);//这里要注意,是空格,不是空
$a=array();
foreach($c as $v){
$a[]="/".$v."/i";
}
$out=preg_replace($a,"*",$content);
//注意载入库之前最好作特殊字符转换或过滤,提高安全性
if($_POST["text"]!=""&&$_POST["textfield"]!=""&&$_POST["textarea"]!="") {
insert($name,$title,$out);//inser是插入数据库,Insert into
}
$smarty=new Smarty();
$smarty->display('index.html');
?>最好不要屏蔽了字符在入库,自己查看的时候都是**,都不知道原话是什么。
应该是先如库,显示的时候再屏蔽不良字符。
$out='';
while($buffer=fgets($fp,4096)){
$out.=$buffer;
}
fclose($fp);
$c=explode(' ',$out);
$a=array();
foreach($c as $v){
$a[]="/".$v."/i";
}
print_r($a)输出的类似Array([0]=>/"毛泽东","共产党",..."坐台","做爱";/i)
我想得到的是$a = array("/靠/","/妈的/","/草/","/jb/i","/鸡/"); 这样的,应该如何修改呢