1. <?php
    2. class OTagString
    3. {
    4. /**
    5. * 截取字符串中某一段内容
    6. * @param $str
    7. * @param $start_str string 开始字符串或标签提示
    8. * @param $end_str string 结束字符串或标签提示
    9. * @return bool|string
    10. */
    11. function get_str($str,$start_str,$end_str){
    12. $start_pos = strpos($str,$start_str)+strlen($start_str);
    13. $end_pos = strpos($str,$end_str);
    14. $c_str_l = $end_pos - $start_pos;
    15. $contents = substr($str,$start_pos,$c_str_l);
    16. return $contents;
    17. }
    18. /**
    19. * 过滤掉字符串中所有指定位置的内容
    20. * @param $str
    21. * @param $start_str string 开始字符串或标签提示
    22. * @param $end_str string 结束字符串或标签提示
    23. * @return mixed
    24. */
    25. function clear_str($str,$start_str,$end_str){
    26. $s = "{".$start_str."[\s\S]*?".$end_str."}si";
    27. return preg_replace($s,"\n",$str);
    28. }
    29. /**
    30. * 指定字符串中内容/标签替换
    31. * @param $string
    32. * @param $replacer array 替换的原内容=>现内容的一维数组
    33. * @return mixed
    34. */
    35. function stringParser($string,$replacer){
    36. $result = str_replace(array_keys($replacer), array_values($replacer),$string);
    37. return $result;
    38. }
    39. /**
    40. * 过滤所有的html标签,保留纯文本格式
    41. * @param $area_str
    42. * @return mixed|string
    43. */
    44. function clear_html_tags($area_str){ //过滤成纯文本用于显示
    45. if ($area_str!=''){
    46. $area_str = trim($area_str); //清除字符串两边的空格
    47. $area_str = strip_tags($area_str,""); //利用php自带的函数清除html格式
    48. $area_str = str_replace("&nbsp;","",$area_str);
    49. $area_str = preg_replace("/ /","",$area_str); //使用正则表达式替换内容,如:空格,换行,并将替换为空。
    50. $area_str = preg_replace("/
    51. /","",$area_str);
    52. $area_str = preg_replace("/
    53. /","",$area_str);
    54. $area_str = preg_replace("/
    55. /","",$area_str);
    56. $area_str = preg_replace("/ /","",$area_str);
    57. $area_str = preg_replace("/ /","",$area_str); //匹配html中的空格
    58. $area_str = trim($area_str); //返回字符串
    59. }
    60. return $area_str;
    61. }
    62. /**
    63. * 其它过滤方法1(过滤html其它标签)
    64. * @param $str
    65. * @return mixed
    66. */
    67. function strFilter1($str){
    68. $str=preg_replace("/\s+/", " ", $str); //过滤多余回车
    69. $str=preg_replace("/<[ ]+/si","<",$str); //过滤<__("<"号后面带空格)
    70. $str=preg_replace("/<\!–.*?–>/si","",$str); //注释
    71. $str=preg_replace("/<(\!.*?)>/si","",$str); //过滤DOCTYPE
    72. $str=preg_replace("/<(\/?html.*?)>/si","",$str); //过滤html标签
    73. $str=preg_replace("/<(\/?head.*?)>/si","",$str); //过滤head标签
    74. $str=preg_replace("/<(\/?meta.*?)>/si","",$str); //过滤meta标签
    75. $str=preg_replace("/<(\/?body.*?)>/si","",$str); //过滤body标签
    76. $str=preg_replace("/<(\/?link.*?)>/si","",$str); //过滤link标签
    77. $str=preg_replace("/<(\/?form.*?)>/si","",$str); //过滤form标签
    78. $str=preg_replace("/cookie/si","COOKIE",$str); //过滤COOKIE标签
    79. $str=preg_replace("/<(applet.*?)>(.*?)<(\/applet.*?)>/si","",$str); //过滤applet标签
    80. $str=preg_replace("/<(\/?applet.*?)>/si","",$str); //过滤applet标签
    81. $str=preg_replace("/<(style.*?)>(.*?)<(\/style.*?)>/si","",$str); //过滤style标签
    82. $str=preg_replace("/<(\/?style.*?)>/si","",$str); //过滤style标签
    83. $str=preg_replace("/<(title.*?)>(.*?)<(\/title.*?)>/si","",$str); //过滤title标签
    84. $str=preg_replace("/<(\/?title.*?)>/si","",$str); //过滤title标签
    85. $str=preg_replace("/<(object.*?)>(.*?)<(\/object.*?)>/si","",$str); //过滤object标签
    86. $str=preg_replace("/<(\/?objec.*?)>/si","",$str); //过滤object标签
    87. $str=preg_replace("/<(noframes.*?)>(.*?)<(\/noframes.*?)>/si","",$str); //过滤noframes标签
    88. $str=preg_replace("/<(\/?noframes.*?)>/si","",$str); //过滤noframes标签
    89. $str=preg_replace("/<(i?frame.*?)>(.*?)<(\/i?frame.*?)>/si","",$str); //过滤frame标签
    90. $str=preg_replace("/<(\/?i?frame.*?)>/si","",$str); //过滤frame标签
    91. $str=preg_replace("/<(script.*?)>(.*?)<(\/script.*?)>/si","",$str); //过滤script标签
    92. $str=preg_replace("/<(\/?script.*?)>/si","",$str); //过滤script标签
    93. $str=preg_replace("/javascript/si","Javascript",$str); //过滤script标签
    94. $str=preg_replace("/vbscript/si","Vbscript",$str); //过滤script标签
    95. $str=preg_replace("/on([a-z]+)\s*=/si","On\\1=",$str); //过滤script标签
    96. $str=preg_replace("/&#/si","&#",$str); //过滤script标签
    97. return $str;
    98. }
    99. /**
    100. *其它过滤方法2:过滤特殊字符和sql关键字
    101. * @param $str
    102. * @return string
    103. */
    104. function strFilter2($str){
    105. //特殊字符的过滤方法
    106. $str = str_replace('`', '', $str);
    107. $str = str_replace('·', '', $str);
    108. $str = str_replace('~', '', $str);
    109. $str = str_replace('!', '', $str);
    110. $str = str_replace('!', '', $str);
    111. $str = str_replace('@', '', $str);
    112. $str = str_replace('#', '', $str);
    113. $str = str_replace('$', '', $str);
    114. $str = str_replace('¥', '', $str);
    115. $str = str_replace('%', '', $str);
    116. $str = str_replace('^', '', $str);
    117. $str = str_replace('……', '', $str);
    118. $str = str_replace('&', '', $str);
    119. $str = str_replace('*', '', $str);
    120. $str = str_replace('(', '', $str);
    121. $str = str_replace(')', '', $str);
    122. $str = str_replace('(', '', $str);
    123. $str = str_replace(')', '', $str);
    124. $str = str_replace('-', '', $str);
    125. $str = str_replace('_', '', $str);
    126. $str = str_replace('——', '', $str);
    127. $str = str_replace('+', '', $str);
    128. $str = str_replace('=', '', $str);
    129. $str = str_replace('|', '', $str);
    130. $str = str_replace('\\', '', $str);
    131. $str = str_replace('[', '', $str);
    132. $str = str_replace(']', '', $str);
    133. $str = str_replace('【', '', $str);
    134. $str = str_replace('】', '', $str);
    135. $str = str_replace('{', '', $str);
    136. $str = str_replace('}', '', $str);
    137. $str = str_replace(';', '', $str);
    138. $str = str_replace(';', '', $str);
    139. $str = str_replace(':', '', $str);
    140. $str = str_replace(':', '', $str);
    141. $str = str_replace('\'', '', $str);
    142. $str = str_replace('"', '', $str);
    143. $str = str_replace('“', '', $str);
    144. $str = str_replace('”', '', $str);
    145. $str = str_replace(',', '', $str);
    146. $str = str_replace(',', '', $str);
    147. $str = str_replace('<', '', $str);
    148. $str = str_replace('>', '', $str);
    149. $str = str_replace('《', '', $str);
    150. $str = str_replace('》', '', $str);
    151. $str = str_replace('.', '', $str);
    152. $str = str_replace('。', '', $str);
    153. $str = str_replace('/', '', $str);
    154. $str = str_replace('、', '', $str);
    155. $str = str_replace('?', '', $str);
    156. $str = str_replace('?', '', $str);
    157. //防sql防注入代码的过滤方法
    158. $str = str_replace('and','',$str);
    159. $str = str_replace('execute','',$str);
    160. $str = str_replace('update','',$str);
    161. $str = str_replace('count','',$str);
    162. $str = str_replace('chr','',$str);
    163. $str = str_replace('mid','',$str);
    164. $str = str_replace('master','',$str);
    165. $str = str_replace('truncate','',$str);
    166. $str = str_replace('char','',$str);
    167. $str = str_replace('declare','',$str);
    168. $str = str_replace('select','',$str);
    169. $str = str_replace('create','',$str);
    170. $str = str_replace('delete','',$str);
    171. $str = str_replace('insert','',$str);
    172. $str = str_replace('or','',$str);
    173. return trim($str);
    174. }
    175. }