我正在通过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)是一种多范式编程语言,包括命令式、声明式、功能性、泛型、面向对象(基于类)和面向组件的编程规程。
发布于 2011-04-15 04:48:31
URL字符串中的#是片段标识符。在将字符串添加到URL之前,需要对其进行urlencode()。
您不能在yyy.php脚本中对此做任何事情,因为PHP无法访问URL片段。
参考文献:标识符
发布于 2011-04-15 04:53:11
尝试传递编码urlencode()的参数。
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上你有
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');更新
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');

发布于 2011-04-15 04:48:49
您需要转义该字符,因为浏览器通常使用它作为hashtag滚动到某些元素。
在PHP中,在查询字符串上使用urlencode()函数。
https://stackoverflow.com/questions/5672490
复制相似问题