2016-11-03 13 views
1

私はdrupalテキスト領域から来る文字列を持っています。 drupalの文字列にはhtmlタグが含まれていますが、文字列を表示すると表示されません。htmlspecialchars double encodeはトリックをしません

この文字列は、後でnew SimpleXMLElementに起こっているが、それはいくつかの問題の文字を持っているので、私はそれを呼びたい:

$string = htmlspecialchars($string, ENT_XML1 | ENT_QUOTES,'UTF-8', false); 

問題はその後、私の文字列が続く

<?xml version="1.0" encoding="UTF-8"?> 
<Data xmlns="http://www.digitalmeasures.com/schema/data" xmlns:dmd="http://www.digitalmeasures.com/schema/data-metadata" dmd:date="2016-11-03"> 
    <Record userId="1" username="y" dmd:surveyId="1127463"> 
     <dmd:IndexEntry indexKey="x" entryKey="x &amp; x" text="x &amp; Life x"/> 
ように見えるということです

これは文字列の一部です

したがって、SimpleXMLElementを呼び出すと、

String could not be parsed as XML 

私はfalseに設定double_encode値でこれを避けるためにしようとしたが、それは動作しません。 SimpleXMLElementonの手順を削除できません。drupalの機能が一部破損しています。 私は何が間違っていますか?

____EDIT_____

私はこれが正常に動作している

$replace = str_replace('&', '&amp;', $string); 

ではhtmlspecialcharsを置き換えるチェックなど。

+0

W3CバリデーターでXMLを検証しようとしましたか? – Fky

+0

はい。この置換を行わないと正常に動作しています(&を削除した場合) 問題は、htmlspecialcharsを呼び出した後に追加されたxmlタグです。 – Quantico

+0

ENT_QUOTESオプションなしで試しましたか? – Fky

答えて

0

$ replace = str_replace( '&'、 '&'、$ string);

関連する問題