Гуру | Доброй ночи! Работаю над парсером - фильтром контента. Открывает HTML код, вычищает всякую гадость, сохраняет.
PHP код: $dom = new domDocument; $dom->loadHTML($str); ... $str=$dom->saveHTML();
Проблемка в том что из данного кода
$(o2).css({top pos['top'])+'px',left pos['left'])+'px',width .offsetWidth+'px',height .offsetHeight+'px',display:''}).html('<div align="left" style="padding:5px;"><div class="myWinLoad"></div></div>'); после сохранения получается следующее:
$(o2).css({top pos['top'])+'px',left pos['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. |