当我在php中使用stripslashes但我没有得到确切的解决方案。我有下面的含义,我在我的代码中使用了这些
示例,如果我有像suresh\'s kuma\"r
这样的表中的值
我试图以下列三种格式显示值,但没有人给出确切的值
1) value=<?=stripslashes($row[1])?> //output is suresh's
2) value='<?=stripslashes($row[1])?>' //output is suresh
3) value="<?=stripslashes($row[1])?>" //output is suresh's kuma
但我需要的确切输出是suresh's kuma"r
让我知道如何解决这个问题?
答案 0 :(得分:0)
您确定要使用stripslashes而不是addslashes吗?目的是引用“人物?
答案 1 :(得分:0)
这个问题与striplashes无关。如果我猜对了,问题在于你的例子引用打破html 字段属性;
我会根据您的信息手动回复您的$ row内容,向您显示:
value="sures" kumar
value='sures' khumar
转义引号不会影响html,因为反斜杠在html中没有意义。
value="Suresh"
和value="Suresh\"
都适用于浏览器,但您的名称将始终被浏览器解释为某个未知属性,只留下值中的第一部分。
您可以执行的操作是htmlentities($row[1],ENT_QUOTES)
,以便它们在等效实体中转换(例如"e;
),不打破您的值属性。请参阅manual。
另一个问题是,您首先在数据库中不应该使用反斜杠;这可能是由于您的提供商中存在magic_quotes
,或者您手动传递addslashes()
或其他错误的欺骗行为。如果要插入包含引号的数据库值,请使用数据库驱动程序提供的转义机制(mysql中的mysql_real_escape_string(),例如),或更好的工具(带有查询绑定的预处理语句)。
首先应该使用striplashes删除所有斜杠并重新保存内容;但是,如果你没有为你的html格式化,那么问题会再次出现,如上所示。