Я использую php v5.3. Я хотел бы преобразовать строку в действительный xml. Xml, по-видимому, требует символов «&», которые должны быть закодированы до &
, но все функции, которые я могу найти, также преобразуют символы, такие как «ë» в html-объекты, xml не принимает (ë
в этом случае). Какую функцию я должен использовать?php string к xml
ответ
htmlspecialchars
является то, что вам нужно. Это намного более избирательно, в отличие от htmlentities
, над тем, что он преобразует.
От htmlentities
documentation:
Эта функция идентична htmlspecialchars() во всех отношениях, за исключением с htmlentities(), все символы, которые имеют HTML-символьный объект эквиваленты переведенный в этих лиц.
<?php
$a = "I love things & stuffë";
$b = htmlspecialchars($a);
$c = htmlentities($a);
echo "$b\n$c\n";
Выходы:
I love things & stuffë
I love things & stuffë
$str = preg_replace('/\s&\s/', '&', $str);
Это было бы заменить все «&» окружен завершающим и заканчивающийся пробел. Просто работать рисунок на немного, как вам нужно
Спасибо, будет работать действительно, но я не уверен, что & является единственным символом, который должен быть закодирован. –
Если вы хотите конвертировать & в &
вы могли бы попробовать это:
$encoded_str = str_replace('&','&',$original_str);
Чтобы избежать получить что-то вроде &amp;
если изначально был &
, один из способов чтобы предотвратить это конвертировать все &
в & первого
$encoded_str = str_replace('&','&',str_replace('&','&',$original_str));
Спасибо, будет работать действительно, но я не уверен, что & является единственным символом, который нужно закодировать. –
При создании XML вы, вероятно, имеют DOMDocument
под рукой уже. Даже если нет, вы можете легко создать его. С DOMDocument
вы можете создать текст, который 100% хорошо сформированные для XML:
$text = "I'm using php v5.3. I would like to convert a string to valid xml. Xml apparently requires '&' characters to be encoded to & but all functions I can find which do this also convert characters like 'ë' to html entities xml doesn't accept (ë in this case). What function should I use?";
$doc = new DOMDocument();
echo $doc->saveXML($doc->createTextNode($text));
Это дает следующий результат (дословно):
I'm using php v5.3. I would like to convert a string to valid xml. Xml apparently requires '&' characters to be encoded to &amp; but all functions I can find which do this also convert characters like 'ë' to html entities xml doesn't accept (&euml; in this case). What function should I use?
- 1. PHP XML String для сложного класса PHP
- 2. xslt php create xml from string
- 3. XML String преобразовать в массив в php
- 4. Перейти к новому атрибуту в XML String
- 5. loading XML from string
- 6. XSLT transform xml string внутри узла к дереву узлов xml
- 7. AS3 String to XML
- 8. php xml требования к функции
- 9. PHP: запрос AJAX к XML
- 10. PHP string! = Variable = 'string'
- 11. доступ к объекту xml после php parse
- 12. php DomDocument + прямой доступ к элементу xml
- 13. php string добавляется к каждому запросу
- 14. Значение php string + XPath приводит к 0?
- 15. php parse css string string
- 16. PHP String to SimpleXML
- 17. JSON.NET XML to String
- 18. Java parse XML string
- 19. XML Drawable from String
- 20. linq to XML string
- 21. XML Serialization to String
- 22. Python XML Compatible String
- 23. Jaxb String from XML
- 24. SmartGWT DataSource string XML
- 25. sign xml string java
- 26. Формат XML String - EDOMParseError
- 27. SQL Parse xml string
- 28. XML to String value
- 29. Xml Parser - string :: find
- 30. parse XML string .net
Проблема в том, что если он экспортирует XML, не будет ли htmlspecialchars конвертировать теги <> и другие символы? – aleation
Вот что мне нужно, я думаю, спасибо. Htmlspecialchars преобразует <>, но это не проблема, потому что это не строка xml, она просто должна быть действительной xml. –