php怎样过滤掉特殊字符啊 ☺

php怎样过滤掉特殊字符啊 ☺,第1张

过滤掉特殊字符,可以考虑使用字符串替换的方法,在php中替换字符效率最高也是最简单字符替换函数str_replace函数。

使用方法:str_replace(find,replace,string,count)

参数说明:

  find 必需。规定要查找的值。 

  replace 必需。规定替换 find 中的值的值。

  string 必需。规定被搜索的字符串。

 count 可选。一个变量,对替换数进行计数。

实例:

str_replace("iwind", "kiki", "i love iwind, iwind said")

将输出 "i love kiki, kiki said"

当然你也可以采取正则替换的方法,该函数是preg_replace

用正则吧,把<>之间的内容过滤掉,或者只取中文并且不是“宋体”

看见你给我发的信息了,我一点刷新就没了,你重加一下吧,

复杂点的正则:

<script>

function removeTags(html){

// Remove all SPAN tags

html = html.replace(/<\/?SPAN[^>]*>/gi, "" )

// Remove all p tags

html = html.replace(/<\/?P[^>]*>/gi, "" )

// Remove all <br>tags

html = html.replace(/<\/?BR[^>]*>/gi, "" )

// Remove Class attributes

html = html.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3")

// Remove Style attributes

html = html.replace(/<(\w[^>]*) style="([^"]*)"([^>]*)/gi, "<$1$3")

// Remove Lang attributes

html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3")

// Remove XML elements and declarations

html = html.replace(/<\\?\?xml[^>]*>/gi, "")

// Remove Tags with XML namespace declarations: <o:p></o:p>

html = html.replace(/<\/?\w+:[^>]*>/gi, "")

// Replace the

html = html.replace(/ /, " " )

return html

}

</script>

下面有个简单写法,但有时过滤会出现问题,但你这个应该没没

replace(/<\/?[^>]*>/gi, "" )

package test

import java.util.HashMap

/**

* maxLength-需要过滤最长字符串的长度

* filterStrs<string,string>-需要过滤字符串的集合,key为需要过滤字符串,value为过滤成的字符串如"*"

* @author Administrator

*

*/

public class Test{

    private int maxLength

    private HashMap<String,String> filterStrs=new HashMap<String,String>()

/**

* 初始化需要过滤掉*的数量

*/

private String initStr(int n){

        StringBuffer sb=new StringBuffer()

          for(int i=0i<ni++){

            sb.append('*')

        }

        return sb.toString()

}

/**

* str-被过滤得字符串

* s-需要过滤得字符串

* 获得剩下未过滤的字符串

*/

private String getNextStr(String str,int start,int slength){

    if(start==0){

        str=str.substring(slength)

    }else if(start+slength<str.length()){

        str=str.substring(start+slength)

    }

    return str

}

/**

* str-被过滤得字符串

* s-需要过滤得字符串

* 获得过滤后的字符串

*/

private StringBuffer getFilterStr(StringBuffer sb,String str,int start,String s){

      if(start!=0){

        sb.append(str.substring(0,start))

    }

    sb.append(filterStrs.get(s))

    return sb

}

/**

* str-被过滤的字符串

* 过滤,并组合过滤后的字符串

*/

public String filter(String str) {

    StringBuffer resultStr=new StringBuffer()

    for(int start=0start<str.length()start++){

        for(int end=start+1end<=str.length()&&end<=start+maxLengthend++){

            String s=str.substring(start, end)

            int slength=s.length()

            if(filterStrs.containsKey(s)){

                  resultStr=getFilterStr(resultStr,str,start,s)

                str=getNextStr(str,start,slength)

                start=0

                end=start

            }

        }

    }

    resultStr.append(str)

    return resultStr.toString()

}

public void put(String key) {

    int keyLength=key.length()

    filterStrs.put(key, initStr(keyLength))

    if(keyLength>this.maxLength)

        maxLength=keyLength

}

public static void main(String[] agrs){

    Test t=new Test()

    t.put("TMD")

    t.put("TNND")

    t.put("NND")

    System.out.println(t.filter("TMD,TNND..TMDTMDTMDTMD.tTNND TMDTNNDTNNDTNND"))

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12096465.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存