|
其实在很多应用设计中字符串处理和数据接收都很重要,这不我在做这两个项目的时候就涉及了不少的数据接收处理及显示的问题。这里要讲一下php中POST,GET,REQUEST等接收数据时转义的问题,可能很多朋友和我以前一样不知道怎么处理,举个例子: 有一个用php输出的表单: <?php 当这样的程序运行时,你输入'"之类的字符,看看input文本框中会出现什么情况,这样做的话可以实现请求后保存值,但是在文本框中的值变成了\',而双引号之后的字符串不见了,我敢肯定这并不是你想要的结果。所以这种情况下就得了解两个知识点了,php的魔术引号及html编码转换。 1、PHP魔术引号。
magic_quotes_runtime magic_quotes_sybase 虽然方便的实现了对特殊符号的自动转义,但是这样会使得程序效率降低,并导致程序可移植变得麻烦。在不知道服务器ini设置的情况下,还需要调用get_magic_quotes_gpc() ,get_magic_quotes_runtime() 或ini_get()来检测状态。 if (!get_magic_quotes_gpc()) { 因此最好关闭php的魔术引号,根据情况手动用addslashes(),stripslashes()来转义和取消转义。 2、html编码转换 <form action="" name="form1" method="POST"><imput type="text" size="20" name="username" value="{$_POST['username']}"></form> 那么出果如果我们$_POST['username']中存在"那么就会出现html编码错误,所以我们要把字符串中的html特殊符号进行编码转换。在php中用htmlspecialchars和htmlspecialchars_decode对字符串中的html特殊字符进行转换,htmlspecialchars_decode是php5新增的。
<?php echo <<<BOL 最后在取出数据显示的时候还得加上反向函数html_entity_decode();这样才会显示出正常的格式。 |
php引号转义及表单储值问题
最新推荐文章于 2024-04-22 10:37:06 发布
本文讲解了PHP中处理POST和GET数据时遇到的转义问题,包括魔术引号的影响及html编码转换的方法。

1999

被折叠的 条评论
为什么被折叠?



