发新话题
打印

提个问题,希望得到大家的帮助

提个问题,希望得到大家的帮助

我现在在对数据库进行操作时,出现了单双引号的问题,  

我用的是ms  sql数据库,  
在存入数据库时,对各种特殊字符进行转义:  
采用下面的函数:  
function  &encodeHtmlChar($value)  
                       {              
                                   return  htmlspecialchars($value,ENT_QUOTES);  
                       }  
读取时用下面的函数2:  
function  &decodeHtmlChar($value)  
                       {              
                                   $tt  =  $value;  
                                   $tt  =  str_replace('amp;','',$tt);  
                                   $tt  =  str_replace(''',"'",$tt);  
                                   $tt  =  str_replace('"','"',$tt);  
                                   $tt  =  str_replace('&lt;',  '<',$tt);  
                                   $tt  =  str_replace('&gt;',  '>',$tt);                                      
                                   return  $tt;  
                       }  

但是我将内容显示在  
function  &showTextbox($name,$value,$size,$class="")  
                       {  
                                   return  "<input  type='text'  name='".$name."'  value='".$value."'  class='".$class."'  size=".$size.">";  
                       }  
中时出现了问题,如果是字段中有双引号,则出现在双引号时后面的内容被切断的情况。  
如果把showtextbox函数中单双引号换一下的话,则出在单引号后面的内容被切断。  
如果把函数改成:  
function  &showTextbox($name,$value,$size,$class="")  
                       {  
                                   return  "<input  type='text'  name='".$name."'  value=".$value."  class='".$class."'  size=".$size.">";  
                       }  
则会出现数据无法明确的现像,在线等待各位的帮助。  


---------------------------------------------------------------  

高手都有问题。爱莫能助,只为分来。

TOP

<?php  
$s  =<<<  TEXT  
aaa"'123'"aaa  
TEXT;  
$ch  =  """;  
echo  "<input  value=\"".str_replace('"',$ch,$s)."\">";  
?>  
输出<input  value="aaa"'123'"aaa">

TOP

function  &showTextbox($name,$value,$size,$class="")  
{  
           return  "<input  type='text'  name='".$name."'  value=\"".str_replace(array("\"","\'"),array("\\\"","\\\'"),$value)."\"  class='".$class."'  size=".$size.">";  
}

TOP

发新话题