Это интересный вопрос, и опущенные избиратели не представляют себе потенциальных вариантов использования. Инструменты архивации страниц, сценарии печати, изображения для предварительного просмотра - все веские причины для манипулирования документом с помощью JavaScript, включенного в страницу.
Я не знаю ни о каких существующих реализациях PHP, но вы, вероятно, могли бы адаптировать SpiderMonkey Mozilla как модуль PHP или как отдельный инструмент для манипулирования DOMDocument и возврата результата.
У меня не было опыта работы с серверным JavaScript, но я считаю, что некоторые проблемы, которые, по моему мнению, необходимо решить:
- Хост-объекты, такие как
document
и window
, не являются частью спецификации ECMAScript (это объекты, предоставляемые реализующим браузером), поэтому вам необходимо убедиться, что библиотека предоставляет эквивалентные хост-объекты.
- У вас могут возникнуть проблемы с безопасностью при выполнении сценариев на стороне клиента в среде на стороне сервера. Это во многом похоже на то, что пользователь может отправить PHP-скрипт для оценки, поэтому вам необходимо убедиться, что в изолированной программной среде безопасности нет ограничений.
Другим (возможно) более безопасным и простым в реализации вариантом может быть использование измененного экземпляра FireFox или WebKit, который работает как браузер, загрузка целевых страниц и возврат измененного источника в ваше приложение.