我經常使用類似的表單,並且剛剛意識到,無論何時將單個雙引號輸入到表單中,輸出給我的輸出(通過電子郵件)都會將引號顯示爲ASCII代碼如此\ '帶有反斜槓循環查看和浸入到獨特的字符編碼specialentities,但似乎無法找到任何有助於輸出它作爲一個正常的引號。來自引號輸出的PHP
回答
這是從PHP的舊的安全功能,稱爲「魔術引號」。來自GET和POST變量的所有引號都用反斜槓進行轉義。
您可以通過在服務器php.ini中將magic_quotes_gpc
的值更改爲off
來禁用它,或使用stripslashes($string)
手動清理字符串。
嘿,那裏謝謝你我使用stripslashes($ _ POST ['comment']);而不是添加filter_sanitize_string – user966834 2012-01-17 09:22:23
但請記住,您的腳本現在取決於'magic_quotes_gpc'開啓。此功能標記爲DEPRECATED,可能會在未來的PHP版本中刪除。 – DerVO 2012-01-17 09:39:17
它是magic_quotes_gpc
長期不贊成使用的古代PHP設置。
只需關閉它
ok ive在php.ini中關閉了這個功能,但仍然有相同的問題 – user966834 2012-01-17 09:11:44
確保你已經編輯了正確的php.ini文件。然後重新啓動服務器 – 2012-01-17 09:19:58
您使用的是哪個版本的PHP?這聽起來像你可能已經啓用了魔術引號,一個不贊成使用的「功能」會自動將反斜槓添加到$_GET
和$_POST
中的引號中。現在使用它被認爲是不好的做法,所以你應該確保它被禁用。請參閱this頁面瞭解如何檢查它是否已啓用並禁用它。
一般來說,如果你有一個帶有轉義引號的字符串,你可以使用stripslashes
來擺脫它們。
$str = "\'hello\'";
echo $str . "\n";
//\'hello\'
echo stripslashes($str) . "\n";
//hello
- 1. 來自mysql的php輸出不一致的引號和其他標點符號
- 2. php輸出單引號
- 3. PHP array_filter輸出有時索引號
- 4. 來自PHP的JSON數據輸出
- 5. 單引號輸出servlet與單引號
- 6. PHP輸出問號
- 7. 來自mySQL的PHP結果不顯示輸入值內部的引號
- 8. 來自RFatest的R輸出
- 9. 來自MySQL的XML輸出
- 10. 來自infopath的XML輸出
- 11. PHP輸出到分號
- 12. 用於JSON輸出的PHP中的帶引號
- 13. 來自PHP的JSON中的單引號導致問題
- 14. 使用PHP來顯示來自Perl腳本的輸出
- 15. PHP JSON字符串,轉義JS輸出的雙引號
- 16. 格式表輸出來自pscustomobject的大括號中的列表
- 17. 從PHP中退出單引號(')PHP
- 18. printf輸出中不需要的引號
- 19. 在asp.net C#雙引號的JavaScript輸出
- 20. 用引號輸出數組的問題
- 21. 來自輸入值的帶狀逗號
- 22. 輸出蜂巢查詢結果爲csv用引號括起來
- 23. 我如何獲得MKS sed來輸出這個雙引號?
- 24. Perl的反引號/系統給出「tcsetattr:輸入/輸出錯誤」
- 25. 限制輸出來自Application.Inputbox
- 26. 來自PHP的奇怪的JSON輸出json_encode()
- 27. php腳本輸出自己
- 28. 在R輸出中刪除反引號
- 29. 從asset_path輸出中刪除雙引號
- 30. 插入雙引號到SQL輸出
你能在這裏粘貼你的代碼嗎?我認爲這可能有助於更快地解決問題。 – 2012-01-16 15:18:47
您是否檢查過系統中魔術引號的設置? http://php.net/manual/en/security.magicquotes.php – Mchl 2012-01-16 15:19:30