PHP: рендеринг iframe на стороне сервера

Я понимаю, что iframe отображается движком браузера
Есть ли способ сделать полный HTML-код на стороне сервера и передать его клиенту?
Я попробовал PHP file_get_contents () функция и srcdoc атрибут для iframe

Это просто загружает содержимое страницы и делает его непригодным для использования.

<?= file_get_contents('http://dns_blocked_by_isp.com'); ?>

И это делает нерабочий iframe

<iframe srcdoc="<?= file_get_contents('http://dns_blocked_by_isp.com'); ?>"frameborder=0 width=510 height=400 scrolling=no
allowfullscreen=allowfullscreen>
</iframe>

Поэтому я в основном ищу альтернативу runat="server" в ASP.NET, но для PHP, если это возможно

Мотивация:

Мой провайдер заблокировал DNS-адрес, откуда я получаю источник iframe, но мой сервер работает в другом регионе, что означает, что он может нормально загружать контент, а URL-адреса в iframe -cdn.com суффикс, который в свою очередь не заблокирован провайдером

Спасибо

0

Решение

Чтобы обойти проблемы поддержки браузера, вам, вероятно, лучше настроить страницу прокси-сервера PHP (т. Е. Скрипт на вашем сервере, который просто извлекает удаленную страницу и обслуживает источник непосредственно как страницу с вашего сервера), но я подозреваю, что проблема, с которой вы сталкиваетесь, заключается лишь в том, что " символы, возвращаемые с удаленной страницы, нарушают srcdoc приписывать. Допустим, удаленный файл выглядит так:

<p class="worldclass">Hello World</p>

Тогда ваш пример приведет к:

<iframe srcdoc="<p class="worldclass">Hello World</p>"

Таким образом, значение srcdoc просто <p class=

Вам просто нужно соответствующим образом экранировать код:

<iframe srcdoc="<?= htmlspecialchars(file_get_contents('http://dns_blocked_by_isp.com')); ?>"frameborder=0 width=510 height=400 scrolling=no
allowfullscreen=allowfullscreen>
</iframe>

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]