当我在php中使用stripslashes时,我没有得到确切的解决方案。我在下面的代码中使用了menstion,如果我在像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
让我知道如何解决这个问题?
发布于 2012-02-07 14:18:05
这个问题与条带斜杠无关。如果我没猜错的话,问题出在你的例子中引号破坏了html的字段属性;
我将根据您的信息手动回显您的$row内容:
kumar -->引导浏览器将此解释为value="sures" kumar
value='sures' khumar
转义引号不会影响html,因为反斜杠在html中没有任何意义。value="Suresh"和value="Suresh\"在浏览器中都可以很好地工作,但是浏览器始终会将您的名字解释为某个未知属性,只在值中留下第一部分。
相反,您可能要做的是应用htmlentities($row[1],ENT_QUOTES),以便在等效的实体(例如,"e;)中转换它们。而不是破坏了你的value属性。参见。
另一个问题是,您的从一开始就不应该在数据库中使用反斜杠;这可能是因为您的提供程序中启用了magic_quotes,或者您手动传递了addslashes()或其他错误的技巧。如果要将包含引号的值插入到数据库中,请使用数据库驱动程序提供的转义机制(例如,mysql中的mysql_real_escape_string())或更好的工具(带有查询绑定的准备好的语句)。
你首先应该去掉所有的斜杠,然后重新保存内容;但是无论斜杠与否,如果你没有按照你的html适当地格式化它,这个问题就会再次出现,就像我上面展示的那样。
发布于 2012-02-07 14:17:58
您确定要使用带斜杠而不是addslashes吗?目的是引用“人物”吗?
https://stackoverflow.com/questions/9171705
复制相似问题