我正在尝试将base
HTML标记插入到加载远程网址的iframe中。
<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;
框架正确加载所有绝对链接,但在尝试加载相对链接时,它引用我的localhost(本地Web服务器)@ 127.0.0.1
答案 0 :(得分:0)
您的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();