PHP教程:preg_replace_callback()函数

  • 来源: 未知 作者: 老苏   2011-07-18/10:20
  • 不中尝试以后却收现把代码替代得参差不齐,我找了半天都出收现哪里得PHP教程:preg_replace_callback()函数足了。厥后认真查抄了一下才恍然年夜悟,我被脚册上的例子误导了!!真正在那个函数会替代婚配的全部内容,即/href=[\"](.?)[\"]/(包罗href),而不但是(.?)所捕捉的工具。而脚册例子中的正则是如许的:(\d{2}/\d{2}/)(\d{4}),它的所有部门都是正在()内的,所以替代成$matches[1].($matches[2]+1)天然不会有题目,然则它却让我误觉得那个函数会有针对性地替代$matches[1]和$matches[2]中的内容,事真上它仍是替代全部正则婚配的内容,即$matches[0]中的内容,而加上的括号只是为了我们对字符串操作便利罢了!领会那一点以后,点窜了代码:

    果为要处置的是一年夜块HTML,所以起尾想到的办理圆案是正则替代,不中preg_replace不克不及做前提判定,只能做一种替代,然后我就找到了那个函数,年夜喜,觉得找到了银弹。那个工具的用法和preg_replace()函数险些一样,不中它供给了一个callback函数,可以正在替代的时间按照前提替代。正在PHP脚册中供给了那么一个例子:

    WebjxCom提醒:果为要处置的是一年夜块HTML,所以起尾想到的办理圆案是正则替代,不中preg_replace不克不及做前提判定,只能做一种替代,然后我就找到了preg_replace_callback()那个函数.

    我就要正在aaa.php的后里加上一个参数使其酿成aaa.php?request=xxx,但题目是否是所有的链接都是aaa.php如许的情势,大概后里已有了此中参数,好比aaa.php?id=111,如许加的时间就需要把链接酿成aaa.php?id=111&request=xxx。


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多