本帖最后由 yifulou 于 2010-05-18 17:51:16 编辑

解决方案 »

  1.   

    你那里面有异常没,要是没异常的话你怎么也到不了catch里面啊,
      

  2.   

    那是当然的,无论正确与否都是返回(return),只是值不同而已
      

  3.   


    如果输入一个错误的正则,则会输出:
    2:eregi() [function.eregi]: REG_BADRPTFile:/home/web/util/input_check.phpLine:2031
    这个异常
      

  4.   


    我希望返回一个TRUE或者FALSE,而结果返回给我的是一个2:eregi() [function.eregi]: REG_BADRPTFile:/home/web/util/input_check.phpLine:2031这就有问题了吧…
      

  5.   

    语法不正确指的是比如你该转义的字符没转义造成正则解析器解析错误,或是由于引号等使用不当造成了php的解析错误。这些都可以被异常捕获到。
      

  6.   


    语法错误,也跳出异常了,就是捕获不到,你可以用我那个方法自己写个错误的正则试试,比如“abc *?+”这个
      

  7.   

    大概说下 如果你是想用这种方式测试 输入的正则是否正确 那个执行不是抛出异常而是抛出个 错误试试查看下 set_exception_handler 看看
      

  8.   

    我试了exception_handler,是会走进那个方法,错误代码是2,不过依然是跳出,而不是捕获啊,最多只能让他不输出而已,实在是没法用这种办法判断那个正则是否正确啊…求帮助……
      

  9.   

    用PHP扩展解决了,谢谢各位了!