2012-11-01 54 views
0

从表单字段保存输入到SQL数据库的varchar(255)...输入会是这样的:输出VARCHAR - 输出编码,不应该

<a href="test.com">Author Name</a> 

底线在大多数情况下,它会不会有html标签。当我检索和数据库输出我得到的是这样的:

&lt;a href=&quot;test.com&quot;&gt;Author Name&lt;/a&gt; 

由于这应该echo'ed为html它不会在页面上正确显示。也许我只是累了,但我不知道如何将其输出为非编码,以便浏览器正确读取它。

+0

这取决于你是如何将它们插入到数据库......但无论如何,'html_entity_decode'或'htmlspecialchars_decode'应该能够将它们转换回来。 – Passerby

+0

html_entity_decode做了诡计......我知道有这样的事情,什么也记不得什么......有时间睡觉!谢谢。 – user756659

回答

0

试试这个:

<?php 
    echo htmlspecialchars_decode("&lt;a href=&quot;test.com&quot;&gt;Author Name&lt;/a&gt;"); 
?> 

你为什么插入到数据库之前编码的HTML标记?

0
#Connect to the DB 
$db = mysql_connect('localhost', 'root', ''); 

#Select the DB name 
mysql_select_db('test'); 

#html tag contain in a string='$str' 
$str='<a href="test'.'.com"'.'>Author Name</a>'; 

###insert query section ### 

#Ask for UTF-8 encoding 
mysql_query("SET NAMES 'utf8'"); 

#Set the Query 
$sql = "INSERT INTO `test`.`code` (`name`) VALUES ('$str');";//Save it in a text row, that's it... 

#Run the query 
mysql_query($sql); 

###fetching result### 

#fetching required info from mysql 
$sqlQuery1 = "SELECT * FROM `code` WHERE `name` LIKE '$str'"; 

$result1 = mysql_query($sqlQuery1); //order executes                     
$row1 = mysql_fetch_array($result1); 
if($row1){  
echo $row1['name'] ; 
} 

#HOPE THIS HELP YOU ALOT