php
2012-02-07 82 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

相關問題