小弟初学PHP想找个字符窜过滤函数我用的是FCK编辑器,在提交数据的时候,编辑器里的内容可能会带有一些单引号,双引号等等之类的符号这些东西如果提交到数据库中,那很可能就会不通过,或者干脆报错,这当然是不希望发生的所以在提交前,最好是对提交的内容处理下,也就是过滤危险字符另外值得注意的是,这些内容中可能包括图片,所以,这个过滤函数,
还要考虑到不要把图片的路径中的某些关键字符("<",">"等等)给过滤掉
了,这当然也是不希望发生的另寻求一php正则表达式 功能如下
我用FCK作为编辑器,里面有内容,就是那种图文混排的,
如果内容中有图片的话,这个正则表达式,可以找出内容中的第一张图片的完整路径,就是src的值

解决方案 »

  1.   

    获得第一张图片的完整路径
    preg_match('/src=[\'"](.*?)[\'"]/is',$str,$match);
    print_r($match);$match[1]就是图片路径
      

  2.   

    入库的数据用addslashes过滤下就行,但要注意下magic_quotes_gpc是否开启,
    string addslashes ( string $str )
    返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。 默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。 
      

  3.   


    建议使用mysql_real_escape_string进行处理,这样就能顺利写入数据库:mysql_real_escape_string
    (PHP 4 >= 4.3.0, PHP 5)mysql_real_escape_string — 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 说明
    string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )
    本函数将 unescaped_string 中的特殊字符转义,并计及连接的当前字符集,因此可以安全用于 mysql_query()。 Note: mysql_real_escape_string() 并不转义 % 和 _。 
    Example #1 mysql_real_escape_string() 例子<?php
    $item = "Zak's and Derick's Laptop";
    $escaped_item = mysql_real_escape_string($item);
    printf ("Escaped string: %s\n", $escaped_item);
    ?> 
    以上例子将产生如下输出: Escaped string: Zak\'s and Derick\'s Laptop
      

  4.   

    刚刚遇到单引号问题,纠结了很久。最终在这里得到了解答。谢谢!  test: '   \'