2012-10-08 118 views
0
echo '<tr class="questiontd"><td>'.htmlspecialchars($question).'</td>'; 
echo "<td class='addtd'><button type='button' class='add' onclick=\"parent.addwindow('$question');\">Add</button></td></tr>"; 

我們上面的代碼會顯示此例如:擺脫不必要的雙引號

提問按鈕

「什麼是2 + 2」 添加(按鈕)

但我不想""圍繞這個問題,我想它顯示如下:

提問按鈕

什麼是2 + 2加(扣)

有誰知道我怎麼可以刪除文本週圍的雙引號? (如果您需要更多代碼,請給我留言)

+2

顯示代碼,其中'$ question'被設定。 –

+0

爲什麼你只是吐出html時,json編碼的問題?不要編碼它,你可能不會得到報價。 – scrappedcola

回答

4

您正在將文本插入到HTML中。爲了逃避它使用htmlspecialchars。 HTML不是JSON。請勿使用json_encode

echo '<tr class="questiontd"><td>'.htmlspecialchars($question).'</td>'; 
+0

我已將我的代碼更改爲htmlspecialchars,我更新了我的問題中的代碼以包含htmlspecialchars,這是唯一的問題,可以說我在我的問題「!」中鍵入了這個問題 $%^&*() - ='。 ,:/?#〜*/\\ <>(這只是對所有字符的測試),然後點擊「添加」按鈕,然後我收到一個錯誤,指出:'未終止的字符串文字:parent.addwindow( '!/'我怎樣才能刪除這個錯誤? – user1701484

0

從第二行刪除json_encode。如果你對一個字符串進行json編碼,它總是用雙引號。

0

只需使用htmlspecialchars()即可將其刪除。

echo '<tr class="questiontd"><td>', htmlspecialchars($question), '</td>'; 

執行的翻譯是:

'&' (ampersand) becomes '&amp;' 
'"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set. 
"'" (single quote) becomes '&#039;' (or &apos;) only when ENT_QUOTES is set. 
'<' (less than) becomes '&lt;' 
'>' (greater than) becomes '&gt;' 
+0

我已經將我的代碼更改爲htmlspecialchars,我更新了我的問題中的代碼以包含htmlspecialchars,這是唯一的問題,可以說我輸入了這個問題'! $%^&*() - ='。,:; /?#〜*/\\><'(這只是對所有字符的測試),然後點擊「添加」按鈕,指出:'未終止的字符串文字:parent.addwindow('!/'我怎樣才能刪除這個錯誤? – user1701484

0

這是真的

你爲什麼JSON編碼的問題,當你剛吐出的HTML?不要編碼它,你可能不會得到報價。

但是,對於一個簡單的解決方案,如果你還是堅持使用json_encode

echo '<tr class="questiontd"><td>'.str_replace(json_encode($question),"\"","").'</td>'; 

或更優雅

echo '<tr class="questiontd"><td>'.htmlspecialchars($question).'</td>'; 
+0

我已將我的代碼更改爲htmlspecialchars,我更新了我的問題中的代碼以包含htmlspecialchars,這是唯一的問題,可以說我在我的問題中鍵入了這個問題'!「 $%^&*() - ='。 ,:/?#〜*/\\ <>(這只是對所有字符的測試),然後點擊「添加」按鈕,然後我收到一個錯誤,指出:'未終止的字符串文字:parent.addwindow( '!/'我怎樣才能消除這個錯誤? – user1701484

+0

你錯過了一個''''或'''嗎?是的,在那裏我看到了,你給了''' –

+0

我看不到錯過'要麼 」 – user1701484