Я огляделся и не мог найти решение, так вот оно.
У меня есть следующий код:
$file = "adhddrugs.xml"; $xmlstr = simplexml_load_file($file); echo $xmlstr->report_description;
Это простая версия, но даже при попытке сделать это любые дефисы r апострофы превращаются в знак знака товарного знака.
Вещи, которые я пробовал:
echo = (string)$xmlstr->report_description; /* did not work */ echo = addslashes($xmlstr->report_description); /* yes I know this doesnt work with hyphens, was mainly trying to see if I could escape the apostrophes */ echo = addslashes((string)$xmlstr->report_description); /* did not work */
также htmlspecial (опять же я знаю, что не работает с дефисами), htmlentities и несколько других трюков.
Теперь ситуация в том, что я получаю XML-файлы из фида, поэтому я не могу их изменить, но они довольно стандартны. Текст с дефисами и т. Д. Инкапсулирован в тег cdata, а кодировка – UTF-8. Если я проверю источник, мне будут показаны дефисы и апострофы в источнике.
Теперь, чтобы убедиться, что кодировка отключена или неправильно маркирована, или что-то еще странное, я попытался просмотреть необработанный XML-файл и, конечно же, правильно отобразился.
Я уверен, что в своей спешке, чтобы найти ответ, я упустил простую вещь и тот факт, что это действительно первый раз, когда я когда-либо пользовался SimpleXML, мне не хватает очень простого решения. Просто не прикрепи меня к этому, я действительно попытался найти ответ самостоятельно.
Еще раз спасибо.