Php 回显链接,得到尾随斜线?

Php 回显链接,得到尾随斜线?,php,jfilechooser,Php,Jfilechooser,我发现每当我做以下事情时: echo '<a href="http://" title="bla">huzzah</a>'; echo'; 最后,我将以下内容呈现到浏览器: <a href="http:///" title="bla">huzzah</a> 当我链接到带有扩展名的文件时,这尤其令人讨厌,因为它会断开链接 你知道为什么会发生这种情况,以及我如何解决它吗 更新: 对于那些询问我的具体实现的人,这里就是。在我的故障排除中,我尽可

我发现每当我做以下事情时:

echo '<a href="http://" title="bla">huzzah</a>';
echo';
最后,我将以下内容呈现到浏览器:

<a href="http:///" title="bla">huzzah</a>

当我链接到带有扩展名的文件时,这尤其令人讨厌,因为它会断开链接

你知道为什么会发生这种情况,以及我如何解决它吗

更新: 对于那些询问我的具体实现的人,这里就是。在我的故障排除中,我尽可能地简化了它,所以请不要介意我将纯文本转换为纯文本

function print_it($item) {
    echo '<div class="listItem clearfix">';
    echo '<div class="info">';
    echo '<span class="title">';
    if(isset($item[6])) {
        echo '<a href="http://" title="">' . 'me' . '</a>';
    }
    echo '</span>';
echo '</div></div>';
}
函数打印($item){
回声';
回声';
回声';
if(isset(第[6]项){
回声';
}
回声';
回声';
}
更新: 作为对Matt Long的回应,我粘贴了你的线条,它呈现了相同的效果

更新: 作为对Fire Lancer的回应,我将回到我最初的尝试,并将在下面向你们展示

echo substr($item[6],13) . '<br>';
echo '<a href="http://' . substr($item[6],13) . '" title="' . $item[0] . '">' . $item[0] . '</a>';

<span class="title">www.edu.gov.on.ca%2Feng%2Ftcu%2Fetlanding.html<br>
<a href="http://www.edu.gov.on.ca%2Feng%2Ftcu%2Fetlanding.html" title="Employment Ontario">Employment Ontario</a></span>
echo substr($item[6],13)。'
'; 回声'; www.edu.gov.on.ca%2Feng%2Ftcu%2fetland.html
生成子链接的原因是,URL在其他地方通过rawurlencode()运行,链接到http%3A%2F%2F会使页面认为它是本地/相对链接

更新: 我粘贴了上面的回复,没有仔细看。因此,在查看源代码时,HTML是正确的,但实际页面在它之后用另一个尾随斜杠解释它

解决方案:
这都是rawlurencode()的结果。如果我一起解码,或者跳过编码,一切都会很完美。关于rawurlencode()的某些内容使浏览器想在其中插入一个尾随斜杠。

我从来没有这样做过,你到底是如何回显链接的?所有这些都应该起作用

echo '<a href="http://someothersite.com">Link</a>';
echo '<a href="anotherpage.php">Some page</a>';
echo '<a href="../pageinparentdir.php">Another page</a>';
etc

我从来没有这样过,你到底是怎么回链接的?所有这些都应该起作用

echo '<a href="http://someothersite.com">Link</a>';
echo '<a href="anotherpage.php">Some page</a>';
echo '<a href="../pageinparentdir.php">Another page</a>';
etc

错误一定在别处
echo
逐字写入字符串。未对任何零件进行后处理。因此,在代码的其他地方添加了额外的斜杠(在将字符串传递到
echo
之前)。

错误必须在其他地方
echo
逐字写入字符串。未对任何零件进行后处理。因此,额外的斜杠会添加到代码的其他地方(在将字符串传递到
echo
之前)。

如果使用双引号并像这样转义内部双引号,会得到相同的结果吗

echo "<a href=\"http://\" title=\"bla\">huzzah</a>";
echo”“;

如果使用双引号并像这样转义内部双引号,会得到相同的结果吗

echo "<a href=\"http://\" title=\"bla\">huzzah</a>";
echo”“;

如果我将echo命令放在PHP代码中,它会按预期输出“http://”(您可以在生成的输出的源代码中看到),但当我将鼠标悬停在结果页面(使用IE7)中的链接上时,它会显示出来


我的猜测是,这是浏览器行为,因为没有主机名或IP地址就不可能有http://链接(你不能只访问协议)。

如果我在PHP代码中输入echo命令,它会按预期输出“http://”(你可以在生成的输出源代码中看到这一点),但当我将鼠标移到结果页面中的链接上(使用IE7)时,它会显示出来


我的猜测是,这是浏览器的行为,因为没有主机名或IP地址就不可能有http://链接(你不能只访问协议)。

尤其是Firefox,它向你展示了html源代码的查看方式,而很少是你发送它的方式。很明显,你的链接或它的上下文让浏览器解释了一个尾随的斜杠


我想知道这是否是url编码的副作用。如果你能解码,那会有帮助的。如果url的某些部分需要保持编码,您可以搜索斜杠并将其放回原处。

尤其是Firefox,它向您展示了html源代码的显示方式,而您发送它的方式很少。很明显,你的链接或它的上下文让浏览器解释了一个尾随的斜杠


我想知道这是否是url编码的副作用。如果你能解码,那会有帮助的。如果url的某些部分需要保持编码,您可以搜索斜杠并将其放回原处。

正如一些人指出的那样,“http://”不是有效链接,因此您的浏览器会在末尾添加额外的斜杠。要查看它,请尝试使用lynx-dump(如果您有幸拥有linux)或telnet从您的机箱到端口80中的服务器,并键入以下内容:

GET /path/file.php HTTP/1.0

看看结果。

正如一些人指出的那样,“http://”不是有效链接,因此您的浏览器在末尾添加了额外的斜杠。要查看它,请尝试使用lynx-dump(如果您有幸拥有linux)或telnet从您的机箱到端口80中的服务器,并键入以下内容:

GET /path/file.php HTTP/1.0

然后查看结果。

您是否查看了PHP配置设置?gpc决定为您逃避一些事情可能是很神奇的(我已经被这种设置咬了好几次,尤其是在处理AJAX/JSON流量时)。尝试确保它已关闭并再次回显(您可能需要编辑您的php.ini文件,或将
php\u flag magic\u quotes\u gpc off
添加到您正在工作的目录中的.htaccess文件中,具体取决于您的环境)。

是否查看了php配置设置?gpc决定为您逃避一些事情可能是很神奇的(我已经被这种设置咬了好几次,尤其是在处理AJAX/JSON流量时)。尝试确保它已关闭并再次回显(您可能需要编辑您的php.ini文件,或将
php\u flag magic\u quotes\u gpc off
添加到您工作目录中的.htaccess文件中,具体取决于您的环境)。

为什么这很重要?http://无论如何都是无效链接。加入一个真正的链接,然后忘掉它。有10个代表,祝你投票愉快=)为什么这很重要?http://无论如何都是无效链接。加入一个真正的链接,然后忘掉它。这里有10个代表,祝你投票愉快=)