分享

IcyRiver 编程遇到的几个问题

 ekylin 2006-09-29

编程遇到的几个问题

真奇怪,今天编码遇到好几个问题,把重要的几个记下来吧:

1。首先看下面一段代码:
<A onclick=”javascript:window.location.href=’yahoo.com’ ” href=”sohu.com” >Click Me!</A>

浏览器会跳转到哪个页面?
FireFox和IE都会先执行页面JS脚本,然后浏览器再跳转到HREF指向的页面—sohu.com。如果把代码改成这样:

<A onclick=”javascript:window.location.href=’yahoo.com’ ” href=”#” >Click Me!</A>

FireFox和IE还是会先执行页面JS脚本,但由于HREF指向的页面是”#”,所以浏览器会跳转到yahoo.com。

2。htmlspecialchars函数可以把引号等特殊字符转换成HTML entities, 如何从HTML entities 还原成相应的特殊字符呢? PHP5提供了一个函数htmlspecialchars_decode,可以做到.在PHP4环境下,只能通过下面的方法完成转换:
$trans = get_html_translation_table(HTML_SPECIALCHARS);
$trans = array_flip($trans); //只是必须的,否则会产生乱码。
$text = strtr($text, $trans);

3。在构造http GET请求的字符串时,如果没有把参数的值用urlencode函数进行处理,可能会产生字符编码的问题。例如我构造了这样一个请求,http://yahoo.com/somePage.php?p=$string&u=…,变量$string使用UTF8编码的,而页面是GBK编码。当用户提交这样一个GET请求时,浏览器会把“p=”后面的字符按照GBK编码来处理,后果是可能会把$string的最后一个字符和紧跟着的字符&结合,而产生混乱的字符。

用urlencode处理$string字符串后,页面上的http GET请求链接就不会有问题。服务器端接受到参数p的值后,还得用urldecode函数对字符串进行解码。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多