没事儿多翻翻手册,多用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); }
我给出的方法是正则,哈哈。。。就像图中这样,
[[]]]]