2011-06-20 143 views
-2

通過從Flash發送以下文本塊,通過PHP創建的XML輸出存在問題。特殊字符問題Flash到XML

() * + , - ./0 1 ! # % ‚ 2 3 4 5 6 7 8 9 : ; <=> ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ]^_ a b c d e ...

我覺得有些引起問題的字符。如何解決這個問題? 乾杯

+1

你實際上沒有告訴我們*問題是什麼。不知道你期望什麼樣的輸入。 –

+1

我猜''<' and '>'不會在輸出中轉義並導致XML語法錯誤/格式錯誤的文檔。如果他們沒有被用作XML元字符,他們需要被編碼爲'<'和'>' –

+1

你需要將它包裝在一個cData標籤 –

回答

1

並非所有的獨立字符支持作爲有效的XML,特別是

  • 左尖括號(<)
  • 右尖括號(>)
  • 雙引號(「)
  • 撇號(')
  • &符(&)

因此,如果您的任何輸入包含該內容,而您只是試圖將其推入XML,那麼您將得到格式不正確的XML。您需要通過轉換功能運行輸入(htmlspecialchars)。

或者,您可以像The_asMan建議的那樣將您的所有輸入包裹在CDATA部分中。您的文本將不會被解析爲XML。

+0

哇,對於新手來說這很難。這是在PHP中使用它的正確方法嗎? '$ mycaption = $ _REQUEST ['caption']; $ mycaption = htmlentities($ mycaption,ENT_QUOTES);'感謝您的支持。 – Marc

+0

看我的編輯。你應該使用htmlspecialchars。所以你的代碼是'$ mycaption = htmlspecialchars($ mycaption,ENT_QUOTES);' – villecoder