Вставьте HTML & lt; base & gt; в iframe

Я пытаюсь вставить base HTML-тег в iframe, который загружает удаленный URL.

<iframe name="frame" id="frame" src="proxy.php" width="550" height="150"></iframe>

Содержание Proxy.php ниже

$url = 'https://theurl.com/buyflow/buyflow-localization.html';
$probe = file_get_contents($url);
echo $probe;

Кадр правильно загружает все абсолютные ссылки, но при попытке загрузить относительную ссылку он ссылается на мой локальный сервер (локальный веб-сервер) @ 127.0.0.1

-1

Решение

Ваш base должен быть внутри head элемент. Возможным решением будет использование DOMDocument класс для манипулирования документом. Что-то вроде этого:

$dirUrl = 'https://theurl.com/buyflow/';
$url = $dirUrl . 'buyflow-localization.html';
$probe = file_get_contents($url);

$doc = new DOMDocument();
$doc->loadHTML($probe);

$head = $doc->getElementsByTagName('head')[0]; // try also ->item(0) instead of [0]
$bases = $head->getElementsByTagName('base');
if(count($bases) == 0) {
$base = $doc->createElement('base');
$head->appendChild($base);
} else
$base = $bases[0]; // same here
$base->setAttribute('href', $dirUrl);

echo $doc->saveHTML();
0

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

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

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