PHP:构建URL路径

Gra*_*rks 5 php

我有几个字符串组合起来构建一个完整的路径.例如

$base = "http://foo.com";
$subfolder = "product/data";
$filename = "foo.xml";

// How to do this?
$url = append_url_parts($base, $subfolder, $filename); ???
Run Code Online (Sandbox Code Playgroud)

字符串连接不会,这将省略必要的正斜杠.

在Win32中,我使用PathCombine()或PathAppend(),它将处理在字符串之间添加任何必要的斜杠,而不会加倍.在PHP中,我应该使用什么?

Jac*_*kin 5

尝试这个:

$base = "http://foo.com";
$subfolder = "product/data";
$filename = "foo.xml";

function stripTrailingSlash(&$component) {
    $component = rtrim($component, '/');
}
$array = array($base, $subfolder, $filename);
array_walk_recursive($array, 'stripTrailingSlash'); 
$url = implode('/', $array);
Run Code Online (Sandbox Code Playgroud)

  • 您不认为这对于一个简单的任务来说有点过分了吗? (2认同)
  • Jacob,你可以省略“strlen()”。`substr($string, 0, -1)` 与 `substr($string, 0, strlen($string)-1)` 相同,并且 `substr($string, -1)` 与 `substr 相同($string, strlen($string)-1)`。尽管我会认真使用“trim”。@RobertPitt:通常情况下,我会同意,除了OP确实说“不加倍”。 (2认同)