1. 有下面这样的一个需求
把下面的两个路径转换为正确的文件目录12/mfw_project/test/demo/demo/../../demo.js/mfw_project/test/./demo.js
转换成:1/mfw_project/test/demo.js
OK,开始搞!
- 第一个方案
|
|
- 第二个方案
|
|
以上两种方案都可以解决我们的需求。但是那种效率更高些呢?我们测试一下
测试执行效率
|
|
- 执行结果123456789101112131415161718192021//递归方式➜ ~ php 1.php/mfw_project/test/demo.js程序运行0.57571291923523秒➜ ~ php 1.php/mfw_project/test/demo.js程序运行0.58426809310913秒➜ ~ php 1.php/mfw_project/test/demo.js程序运行0.58362793922424秒//截取方式➜ ~ php 1.php/mfw_project/test/demo.js程序运行0.22979879379272秒➜ ~ php 1.php/mfw_project/test/demo.js程序运行0.23150992393494秒➜ ~ php 1.php/mfw_project/test/demo.js程序运行0.22574400901794秒
可以看到代码,我们把程序循环执行了10万次,代码执行效率.
截取方式比递归方式,效率快了一倍多。
结论
- 尽量使用
PHP
自带函数 PHP
中,用正则匹配比直接用PHP
截取慢,不过第二种方式代码更美观一些