首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过$_GET访问URL中的#字符

通过$_GET访问URL中的#字符
EN

Stack Overflow用户
提问于 2011-04-15 04:46:35
回答 5查看 1.1K关注 0票数 2

我正在通过URL传递数据,然后使用PHP$_GET[]函数访问它。如果URL中有“#”,那么GET请求似乎会截断字符串。例如,

语言受影响 D、F#、Java 5、Nemerle、Vala平台公共语言基础设施许可证CLR专有的常用文件扩展名.cs网站C Sharp在维基百科C#上编程(发音为/ˈsiːˈʃɑrp/参阅sharp)是一种多范式编程语言,包括命令式、声明性、功能性、泛型、面向对象(基于类)和面向组件的编程规程。@10902

$_GET['value']返回:

ART:C_Sharp_(programming_language)@Multi-paradigm_programming_language@Influenced D,F

有什么办法可以避免这种情况吗?我应该删除所有的#的值张贴到URL中吗?

使用XMLHttpRequest()从客户端javascript代码访问URL位置。javascript功能encodeURIComponent()编码的字符串是,

ART%3AC_Sharp_%2528programming_language%2529%40Multi-paradigm_programming_language%40Influenced%20D%2C%20F%23%2C%20Java%205%2C%20Nemerle%2C%20Vala%20Platform%20Common%20Language%20Infrastructure%20License%20CLR%20Proprietary%20Usual%20file%20extensions%20.cs%20Website%20C%20Sharp%20Programming%20at%20Wikibooks%20C%23%20(pronounced%20%2F%CB%88si%CB%90%20%CB%88%CA%83%C9%91rp%2F%20see%20sharp)%20is%20a%20multi-paradigm%20programming%20language%20encompassing%20imperative%2C%20declarative%2C%20functional%2C%20generic%2C%20object-oriented%20(class-based)%2C%20and%20component-oriented%20programming%20disciplines.%8681

由‘yyy.php’记录的解码输出:

ART:C_Sharp_%28programming_language%29@Multi-paradigm_programming_language@Influenced D、F#、Java 5、Nemerle、Vala平台公共语言基础设施许可证CLR专用文件扩展.cs网站C Sharp在Wikibook C#上编程(发音为/ˈsiˈƒ‘rp/参阅sharp)是一种多范式编程语言,包括命令式、声明性、功能性、泛型、面向对象(基于类)和面向组件编程学科。@8681

不使用encodeURIComponent()记录输出以及预期结果是什么:

ART:C_Sharp_(programming_language)@Multi-paradigm_programming_language@Influenced D、F#、Java 5、Nemerle、Vala平台公共语言基础设施许可证CLR专有的常用文件扩展名.cs网站C Sharp在Wikibook C#上编程(发音为/ˈsiːˈʃɑrp/见sharp)是一种多范式编程语言,包括命令式、声明式、功能性、泛型、面向对象(基于类)和面向组件的编程规程。

EN

回答 5

Stack Overflow用户

发布于 2011-04-15 04:48:31

URL字符串中的#是片段标识符。在将字符串添加到URL之前,需要对其进行urlencode()

您不能在yyy.php脚本中对此做任何事情,因为PHP无法访问URL片段。

参考文献:标识符

票数 5
EN

Stack Overflow用户

发布于 2011-04-15 04:53:11

尝试传递编码urlencode()的参数。

代码语言:javascript
运行
复制
header('Location: http://your_url?version=0.88&value='.urlencode('ART:C_Sharp_%28programming_language%29@Multi-paradigm_programming_language@Influenced D, F#, Java 5, Nemerle, Vala Platform Common Language Infrastructure License CLR Proprietary Usual file extensions .cs Website C Sharp Programming at Wikibooks C# (pronounced /ˈsiː ˈʃɑrp/ see sharp) is a multi-paradigm programming language encompassing imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines.@10902'));

在js上你有

代码语言:javascript
运行
复制
window.location = 'index.php?value='+encodeURIComponent('ART:C_Sharp_%28programming_language%29@Multi-paradigm_programming_language@Influenced D, F#, Java 5, Nemerle, Vala Platform Common Language Infrastructure License CLR Proprietary Usual file extensions .cs Website C Sharp Programming at Wikibooks C# (pronounced /ˈsiː ˈʃɑrp/ see sharp) is a multi-paradigm programming language encompassing imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines.@10902');

更新

代码语言:javascript
运行
复制
window.location = 'index.php?version=0.88&value='+encodeURIComponent('ART:C_Sharp_(programming_language)@Multi-paradigm_programming_language@Influenced D, F#, Java 5, Nemerle, Vala Platform Common Language Infrastructure License CLR Proprietary Usual file extensions .cs Website C Sharp Programming at Wikibooks C# (pronounced /ˈsiː ˈʃɑrp/ see sharp) is a multi-paradigm programming language encompassing imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines.@8681');

票数 2
EN

Stack Overflow用户

发布于 2011-04-15 04:48:49

您需要转义该字符,因为浏览器通常使用它作为hashtag滚动到某些元素。

在PHP中,在查询字符串上使用urlencode()函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5672490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档