php字符过滤
Ⅰ php 如何过滤特殊字符 如图这是编辑器中的内容放在记事本文件中出现的,小黑格就是特殊字符
小黑点应该是换行符吧!
其实可以用
<?php
$string = "换行测试".chr(13).chr(10)."第二行测试";
$fp = fopen('a.txt','w+');
fwrite($fp,$string);
fclose($fp);
?>
Ⅱ php 正则过滤word里面粘贴过来的标签
用strip_tags()函数是最直接的了,用正则也行,以下是PHP手册中的过滤标签
<?php
$search = array ("'<script[^>]*?>.*?</script>'si", // 去掉 javascript
"'<[\/\!]*?[^<>]*?>'si", // 去掉 HTML 标记
"'([\r\n])[\s]+'", // 去掉空白字符
"'&(quot|#34);'i", // 替换 HTML 实体
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(|#169);'i",
"'(\d+);'e");
$replace = array ("",
"",
"\\1",
"\"",
"&",
"<",
">",
" ",
chr(161),
chr(162),
chr(163),
chr(169),
"chr(\\1)");
$text = preg_replace ($search, $replace, $document);
?>
Ⅲ 求一段php过滤字符串内所有img标签的代码
<?php
$a="哈哈哈<imgsrc='img.jpg'/>嘻嘻嘻<imgsrc='img.jpg'/>";
$a=preg_replace('/<img.*?/>/','',$a);
echo$a;
?>
Ⅳ php中数据过滤的问题
我来解释一下吧
preg_replace('/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F]/','',$string);
去掉控制字符,你google一下ascii table就知道了,php里面 - 代表范围,比如\x00-\x08指的是ASCII代码在\x00到\x08范围的字符,\x0A和\x0D代表回车换行,所以没包含在这个里面,否则直接\x00-\x1F了,
$string = str_replace(array("\0","%00","\r"),'',$string);
\0表示ASCII 0x00的字符,通常作为字符串结束标志
$string = preg_replace("/&(?!(#[0-9]+|[a-z]+);)/si",'&',$string);
我们知道HTML里面可以用xx;来对一些字符进行编码,比如 (空格), ߷ Unicode字符等,A(?!B) 表示的是A后面不是B,所以作者想保留 ߷类似的 HTML编码字符,去掉其他的问题字符,比如 &123; nbsp;
str_replace(array("%3C",'<'),'<',$string);
第一个'<'多余吧,%3C是编码以后的 <, 一般用在URL编码里
str_replace(array("%3E",'>'),'>',$string);
str_replace(array('"',"'","\t",' '),array('"',"'",'',''),$string);
略过
有问题再追问
Ⅳ php怎么过滤特殊汉字
可以用一个文本或者一个表把特殊汉字按照一定规则存储好,每次请求过来用strpos做过滤就好了,这种方式根据特殊汉字的多少而直接影响响应速度与访问时长,不建议数据源过大。如果是数据源过大的话,可以考虑mysql的全文索引机制。如果是过滤所有汉字,就用ascii码对照