IcyRiver 编程遇到的几个问题

来源:百度文库 编辑:神马文学网 时间:2024/04/27 13:54:25
编程遇到的几个问题
Posted on September 14th, 2006 in技术笔记.
真奇怪,今天编码遇到好几个问题,把重要的几个记下来吧:
1。首先看下面一段代码:
Click Me!
浏览器会跳转到哪个页面?
FireFox和IE都会先执行页面JS脚本,然后浏览器再跳转到HREF指向的页面—sohu.com。如果把代码改成这样:
Click Me!
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函数对字符串进行解码。