高手给予详细解释 谢谢preg_match('@^.*/(.*)\.php$@',$_SERVER['SCRIPT_NAME'],$pregArr);$_SERVER['SCRIPT_NAME'] 值是 /text.php $pregArr[1] 得出  test     
怎么正则出test的呢。 越详细越好,我很菜的。。 

解决方案 »

  1.   

    '@^.*/(.*)\.php$@'头尾的 @ 是限定符,就是说,中间才是真正的正则。^.* 以非空字符开头,当然这里是可有也可无,^为以XX开始,.是非空字符(即除空格,换行等等),*就是指前面的可以有,可以无/ 就是匹配一个 / 了。
    (.*) 跟上面的 .* 一样,括号的,后面说
    \. 这里是匹配一个点。即 (.php)里的 .
    php$ 是以php结尾$pregArr就是一个数组,$pregArr[1] 里的1 就是指上所说的第一个括号里的内容了
    [2] 就是第二个括号里的内容,这里没有。。依此类推。
      

  2.   

    @^.*/(.*)\.php$@@       前后两个@是定界符,告诉程序中间是正则表达式
    ^       代表是行首
    .*      代表任意字符
    /       匹配/字符
    (.*)  代表任意字符并保存
    \.      转义.  因为. 在正则中表示任意字符,想匹配.字符要转义
    php     匹配 php 字符最终取的结果是   text
      

  3.   

    就是取到以.php结尾的文件的文件名放到数组中(去掉目录,只取文件名)
      

  4.   

    看视频教程吧
    http://www.php100.com/html/shipinjiaocheng/PHP100shipinjiaocheng/list_20_6.html
    36讲--41讲都是说正则的,简单易懂MD,怎么感觉我是PHP100的托,老推荐它们的视频
      

  5.   


    preg_match('@^.*/(.*)\.php$@',$_SERVER['SCRIPT_NAME'],$pregArr);
    ^.*/(.*)\.php$^表示以什么开头 $表示以什么结束
    .代表任意字符除了换行符
    *表示前面0个到多个字符
    \是转义字符。后面跟的"."就是匹配句点
    就是得到文件名。
    $pregArr[1]是匹配第一个括号的内容。就是获取带有路劲的php的文件名。