没事儿多翻翻手册,多用PHP常量

没事儿应多翻翻PHP手册,PHP函数极其丰富,很多时候我们都会重复造轮子。比如:今天有个问题,有一个路径如“/adurl.co/BullSoft.org/极客/Solar-PHP”形式,要判断有多少层怎么写?

群里lychee写了一个:

size(explode('/', '/a/b/c/1/2/3'))

我也写了个:

substr_count('/a/b/c/1/2/3', '/');

不错,其实PHP已经有函数可以处理。 第2个问题来了,如何它变成../../这种形式呢?也就是说有几层目录就有几个../ 桦写了这个:

    while($temp!='/'){
    $per .='../';
    dirname($temp);
}

咋看上去没问题,哈哈,但是一运行就是死循环,为什么?原来运行到根目录时,在Windows平台上,dirname函数返回的'\',而不是'/',所以要改为:

    while($temp!='\\'){
    $per .='../';
    dirname($temp);
}

如果改成这样,在linux上用就麻烦了,因为一般大家在windows下开发,在linux下跑程序,所以这里最好用PHP常量:

    while($temp!=DIRECTORY_SEPARATOR){
    $per .='../';
    dirname($temp);
}

我给出的方法是正则,哈哈。。。就像图中这样, [[dir_re.jpg]]]]