PHP中有没有内置函数可以智能地连接路径字符串?给定abc/de/
和/fg/x.php
作为参数的函数应返回abc/de/fg/x.php
;使用abc/de
和fg/x.php
作为该函数的参数应返回相同的结果.
如果没有,是否有可用的课程?它对于分割路径或移除部分路径也很有价值.如果你写了一些东西,可以在这里分享你的代码吗?
总是使用/
是可以的,我只为Linux编写代码.
Python中有os.path.join
个,这很好.
PHP中有没有内置函数可以智能地连接路径字符串?给定abc/de/
和/fg/x.php
作为参数的函数应返回abc/de/fg/x.php
;使用abc/de
和fg/x.php
作为该函数的参数应返回相同的结果.
如果没有,是否有可用的课程?它对于分割路径或移除部分路径也很有价值.如果你写了一些东西,可以在这里分享你的代码吗?
总是使用/
是可以的,我只为Linux编写代码.
Python中有os.path.join
个,这很好.
因为这似乎是一个很受欢迎的问题, comments 中充满了"功能建议"或"错误报告"...这个代码段所做的就是用斜杠连接两个字符串,而不在它们之间重复斜杠.这就是全部.不多也不少.它不会计算硬盘上的实际路径,也不会实际保留起始斜杠(如果需要,请将其添加回,至少可以确保此代码始终返回字符串without起始斜杠).
join('/', array(trim("abc/de/", '/'), trim("/fg/x.php", '/')));
最终结果将始终是一条在开始或结束处没有斜线的路径,并且在其内部没有双斜线.你可以自由发挥作用.
编辑:
function joinPaths() {
$args = func_get_args();
$paths = array();
foreach ($args as $arg) {
$paths = array_merge($paths, (array)$arg);
}
$paths = array_map(create_function('$p', 'return trim($p, "/");'), $paths);
$paths = array_filter($paths);
return join('/', $paths);
}
echo joinPaths(array('my/path', 'is', '/an/array'));
//or
echo joinPaths('my/paths/', '/are/', 'a/r/g/u/m/e/n/t/s/');
:o)