Url 在变量中使用斜杠的最佳实践

Url 在变量中使用斜杠的最佳实践,url,Url,我想知道在声明包含路径或URI的变量或常量时,哪种是最佳实践(以及为什么):是否使用尾随斜杠 与: 没有: define(MODULE_URL,'http://mysite.com/modules'); $var = MODULE_URL . '/module-dir/file.ext'; 我用这个: define(MODULE_URL,'http://mysite.com/modules'); $var = MODULE_URL . '/module-dir/file.ext'; 因为它强

我想知道在声明包含路径或URI的变量或常量时,哪种是最佳实践(以及为什么):是否使用尾随斜杠

与:

没有:

define(MODULE_URL,'http://mysite.com/modules');
$var = MODULE_URL . '/module-dir/file.ext';
我用这个:

define(MODULE_URL,'http://mysite.com/modules');
$var = MODULE_URL . '/module-dir/file.ext';
因为它强制实现了一致性,如果我必须输出路径名,它会给我更清晰的路径名,因为:

$var = MODULE_URL . 'module-dir/file.ext';
不行。鉴于:

define(MODULE_URL,'http://mysite.com/modules/');
$var = MODULE_URL . 'module-dir/file.ext';
让我们让你逃脱:

$var = MODULE_URL . 'module-dir/file.ext';
$var = MODULE_URL . '/module-dir/file.ext';
因此,如果我在第二个示例中转到output
$var
,我会得到以下结果:

http://mysite.com/modules//module-dir/file.ext
看起来很难看。

我用这个:

define(MODULE_URL,'http://mysite.com/modules');
$var = MODULE_URL . '/module-dir/file.ext';
因为它强制实现了一致性,如果我必须输出路径名,它会给我更清晰的路径名,因为:

$var = MODULE_URL . 'module-dir/file.ext';
不行。鉴于:

define(MODULE_URL,'http://mysite.com/modules/');
$var = MODULE_URL . 'module-dir/file.ext';
让我们让你逃脱:

$var = MODULE_URL . 'module-dir/file.ext';
$var = MODULE_URL . '/module-dir/file.ext';
因此,如果我在第二个示例中转到output
$var
,我会得到以下结果:

http://mysite.com/modules//module-dir/file.ext

这看起来很难看。

基于
/
将被解释为
/
,那么我认为您应该在目录名的末尾始终使用斜杠。所以两者都是

define(MODULE_URL,'http://mysite.com/modules/');
$var1= MODULE_URL . 'module-dir/file.ext';
$var2 = MODULE_URL . '/module-dir/file.ext';
$var1
$var2
指向同一个位置。如果没有尾部斜杠,则情况并非如此


我还认为这在所有语言中都是相当标准的做法。

基于
/
将被解释为
/
,那么我认为您应该始终在目录名的末尾使用斜杠。所以两者都是

define(MODULE_URL,'http://mysite.com/modules/');
$var1= MODULE_URL . 'module-dir/file.ext';
$var2 = MODULE_URL . '/module-dir/file.ext';
$var1
$var2
指向同一个位置。如果没有尾部斜杠,则情况并非如此


我还认为这在所有语言中都是相当标准的做法。

我更喜欢不带尾随斜杠,原因很简单,
%s/%s
%s%s
更具可读性,并且具有双斜杠意味着最大路径长度。这不是URI的问题,在大多数系统上,您永远不会触及长度,但我希望在所有环境和情况下保持一致。 此外,我还可以做以下事情:

define(MODULE_URL, 'http://example.com/modules');
$mod['en'] = MODULE_URL . '_en/' . $mod_name;

因为您并不总是控制某人如何创建其层次结构。

我更喜欢不带尾随斜杠,因为
%s/%s
%s%s
可读性更强,并且具有双斜杠将计入最大路径长度。这不是URI的问题,在大多数系统上,您永远不会触及长度,但我希望在所有环境和情况下保持一致。 此外,我还可以做以下事情:

define(MODULE_URL, 'http://example.com/modules');
$mod['en'] = MODULE_URL . '_en/' . $mod_name;

因为你并不总是能控制别人如何建立他们的等级制度。

我认为是重复的。。。这里的@dve与网站管理员链接无关。这是关于连接,不是关于搜索引擎优化分数。重复我认为。。。这里的@dve与网站管理员链接无关。这是关于连接,而不是关于搜索引擎优化分数。谢谢你,我看到这是一个相当主观的问题。我觉得更倾向于强制一致性,尽管我明白你的推理。我想看看这是一个标准的做法,但我想这需要经验。这不是主观的。如果末尾有斜杠,则可以保证指向的是目录,否则可能是没有扩展名的文件。要求在文件没有强制执行约定之前添加斜杠,这很烦人;“奇怪的“/”是丑陋的“实际上并没有把它作为选择“不”/”的理由。通常需要属性
uri=directoryName+fileName
。但是失去了尾随斜杠你就没有了。谢谢你,我觉得这是一个相当主观的问题。我觉得更倾向于强制一致性,尽管我明白你的推理。我想看看这是一个标准的做法,但我想这需要经验。这不是主观的。如果末尾有斜杠,则可以保证指向的是目录,否则可能是没有扩展名的文件。要求在文件没有强制执行约定之前添加斜杠,这很烦人;“奇怪的“/”是丑陋的“实际上并没有把它作为选择“不”/”的理由。通常需要属性
uri=directoryName+fileName
。但失去了尾随斜杠,你就没有了。我认为所有答案都是主观的,而不是基于经验,但我同意“强制一致性”的理念。谢谢,我看到所有的答案都是主观的,而不是基于经验,但我同意“强制一致性”的理念。非常感谢。