PHP: domDocument коверкает script'ы

(Ответов: 0, Просмотров: 259)
  1. Гуру Аватар для MetalMessiah
    • Регистрация: 19.04.2011
    • Сообщений: 745
    • Записей в дневнике: 4
    • Репутация: 189
    Доброй ночи!
    Работаю над парсером - фильтром контента. Открывает HTML код, вычищает всякую гадость, сохраняет.
    PHP код:
    $dom = new domDocument;
    $dom->loadHTML($str);
    ...
    $str=$dom->saveHTML(); 
    Проблемка в том что из данного кода
    $(o2).css({toppos['top'])+'px',leftpos['left'])+'px',width.offsetWidth+'px',height.offsetHeight+'px',display:''}).html('<div align="left" style="padding:5px;"><div class="myWinLoad"></div></div>');
    после сохранения получается следующее:
    $(o2).css({toppos['top'])+'px',leftpos['left'])+'px',width.offsetWidth+'px',height.offsetHeight+'px',display:''}).html('<div align="left" style="padding:5px;"><div class="myWinLoad"></script>
    </div>
    </div>');
    Лишние переводы строк перед </div> нарушают целостность JS кода, появляется незавершенная строка, </script> там где его не было и еще много интересного. При этом в конце кода </script> пропадает (он уже как бы раньше проставился) и кусок кода отображается текстом.
    У кого-то есть мысли как с этим бороться не совсем вручную?

    Воспроизводится на любом подобном HTML коде, где в кавычки включен HTML, независимо от значения параметров domDocument: preserveWhiteSpace, formatOutput, validateOnParse, recover. От платформы и версии PHP не зависит. Баг?
    Последний раз редактировалось MetalMessiah; 08.04.2019 в 05:03.
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
Залили Шелл на Shop-Script 4
Консультации по безопасности 0 21.12.2015 00:40
WP коверкает коды видео
WordPress 2 01.04.2014 14:07
Action Script 3 - в команду разработчиков
Создание сайтов 0 03.06.2011 14:02
Action Script 3 - в команду разработчиков
Web программирование 0 03.06.2011 14:02
Java Script: библиотеки и фреймворки
Софт, скрипты, сервисы 9 15.12.2009 16:16

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры