相同的页面链接无法使用带有id锚点的rawurlencode()

时间:2013-10-22 21:15:36

标签: php hyperlink urlencode

编辑:对于其他人阅读,这已得到解决。锚ID中不允许使用%20。

通常使用锚ID的原因,我正在将文本链接列表作为标题,这些标题只是在页面的下方链接到每个相关的文本块。

代码有效,没有错误等,但我无法成功编码URL 如果没有rawurlencode()链接可以很好地工作,但是它们有我需要管理的空间(也不会验证)。

我只用urlencode()尝试了,但这很好用,但是它增加了+而不是%20,并且我尽可能避免读取+(可能这不准确,但不能解释为什么{{1} }不起作用)。

基本代码:

rawurlencode()

在源代码中,我可以看到// The array of list titles $aryList = array( "1. Communications", "2. Definitions and Conditions"); // Loop to output each list title as a link foreach ($aryList as $strListValue) { echo "<a href='#".rawurlencode($strListValue)."'>$strListValue</a>"; } // The content with the list title as the link ID (destination) echo "<a id='".rawurlencode($aryList[0])."'>".$aryList[0]."</a>"; echo "The text is about Communications."; 用%20替换空格,尽管浏览器地址栏中的URL没有%20且带有空格。单击链接不会执行任何操作。

使用rawurlencode()时的源代码:

rawurlencode()

浏览器是Iceweasel 17.0.9 FWIW。

修改
从事物 durrrutti 测试说,当我// The list title links <a href='#1.%20Communications'>1. Communications</a> <a href='#2.%20Definitions%20and%20Conditions'>2. Definitions and Conditions</a> // The list IDs (destination) <a id='1.%20Communications'>1. Communications</a> <a id='2.%20Definitions%20and%20Conditions'>2. Definitions and Conditions</a> 只有锚时,它完全正常,而不是ID。

然而,这仍然留下ID中的空白问题。

源代码现在只有锚点编码而不是ID:

rawurlencode()

1 个答案:

答案 0 :(得分:2)

元素ID不能以字母字符开头,即A-Z和a-z。我认为这是你的问题。

更新:此外,ID不能包含百分号。