Php 自动向URL编码URL添加尾部斜杠
我对以下几点感到非常困惑:Php 自动向URL编码URL添加尾部斜杠,php,hyperlink,urlencode,Php,Hyperlink,Urlencode,我对以下几点感到非常困惑: echo("<a href='http://".urlencode("www.test.com/test.php?x=1&y=2")."'>test</a><br>"); echo("<a href='http://"."www.test.com/test.php?x=1&y=2"."'>test</a>"); echo(”); 回声(“”); 第一个链接添加了一个尾随斜杠(这给我带来了
echo("<a href='http://".urlencode("www.test.com/test.php?x=1&y=2")."'>test</a><br>");
echo("<a href='http://"."www.test.com/test.php?x=1&y=2"."'>test</a>");
echo(
”);
回声(“”);
第一个链接添加了一个尾随斜杠(这给我带来了问题)
第二个链接没有
谁能帮我理解为什么。
很明显,这似乎与urlencode有关,但我不知道是什么
谢谢
c您不应该使用
urlencode()
来回显URL,除非它们包含一些非标准字符
提供的示例不包含任何异常
例子
请参阅,我之所以使用它,是因为$query
变量可能包含空格、问号等。我不能使用问号,因为它表示查询字符串的开头,例如index.php?page=1
事实上,这个例子最好只是输出,而不是echo
另外,当我尝试你的示例代码时,我没有得到一个traling斜杠,事实上我得到了一个traling斜杠
<a href='http://www.test.com%2Ftest.php%3Fx%3D1%26y%3D2'>test</a>
字符串urlencode(字符串$str)
此功能在以下情况下非常方便:
将字符串编码为用于
查询URL的一部分,方便
将变量传递给下一个
页面
您的urlencode
未在您的案例中正确使用
另外,
echo
通常不附带()
它应该是echo”您应该仅对参数使用urlencode()
echo 'http://example.com/index.php?some_link='.urlencode('some value containing special chars like whitespace');
您可以使用它将URL等传递到您的URL。正确,因为echo
是一种语言构造,而不是函数。不要感谢C的PHP!:p(尽管从技术上讲您可以).谢谢大家,我现在从大家所说的和一些测试中看到,当服务器看到域级url时,它显然是在添加一个尾随斜杠。当我对整个url进行编码时(我应该更好地阅读iInstruments),我隐藏了一个事实,即url是一个文件级请求,通常不会添加尾随斜杠。谢谢。
echo 'http://example.com/index.php?some_link='.urlencode('some value containing special chars like whitespace');