php
2012-02-07 80 views 0 likes 
0

当我在php中使用stripslashes但我没有得到确切的解决方案。我已经menstion下面我在我的代码中使用的那些是 例如,如果我有像suresh\'s kuma\"r
我尝试显示在下面的三种格式中的值表中的值,但没有一个是给确切值在php中使用stripslashes问题

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

让我知道如何解决这个问题?

+1

你忘了描述问题 – zerkms 2012-02-07 06:05:43

回答

0

问题有什么做用的stripslashes如果我猜得不错,问题在于这样一个事实,在你的例子报价打破HTML场属性;。

我会通过手动呼应你的$行的内容,按您的相关信息告诉你:

  1. 值=祖雷斯贝尔库马尔 - >导致浏览器解释为value="sures" kumar
  2. 值='suresh'khumar - - >好吧,同样的故事value='sures' khumar
  3. 值=“苏雷什” Khumar - >我能说什么呢......你知道该怎么做

逃离报价不会影响HTML,因为反斜杠在HTML没有意义。 value="Suresh"value="Suresh\"对于浏览器都可以正常工作,但是您的名字总是被浏览器解释为一些未知的属性,只留下值中的第一部分。

你可能会做什么,取而代之的,是适用htmlentities($row[1],ENT_QUOTES),使他们获得在换算相当于实体(&quote;,为前)和打破你的价值属性。请参阅manual

另一个问题是,你的不应该在你的数据库中有反斜杠;这可能是由于在您的提供商中启用了magic_quotes,或者您手动传递了addslashes()或其他错误的欺骗。如果你想在数据库中插入包含引号的值,可以使用数据库驱动程序提供的转义机制(mysql中的mysql_real_escape_string(),例如)或更好的工具(带查询绑定的预备语句)。

您应该首先使用该stripslashes删除所有斜杠并重新保存内容;但是斜杠或不斜杠,如果您没有为您的HTML格式适当地设置格式,问题将再次出现,如上所示。

0

您确定要使用stripslashes而不是addslashes吗?是的目的是引用“字

+0

是的,我将使用addslashes – 2012-02-07 07:07:35

+0

@Suresh什么是使用addslashes?如果是数据库,那是错误的。如果为HTML,这是没用的... – 2012-02-08 09:42:42

+0

@DamienPirsy这是公平的。如果您确定*只需引用'和',则使用它;如果不是,请使用htmlentities()。 – jcisio 2012-02-08 10:12:53

相关问题