Site_a index.php использует 2 фрейма:
iframe_1 для site_a, который является навигационным меню (site_a.com)
iframe_2 для site_b, который является кобрендовым сайтом (site_b.com)
Моя цель — объединить два моих сайта на одной странице через два фрейма, что работает с кодом ниже. Однако в frame_2 гиперссылки контента действуют так, как будто они принадлежат site_a, а не следуют за ними из site_b.
То, что я ожидал в frame_2, должно было следовать гиперссылкам http://site_b.com/somepage.php, но что я получаю в frame_2 http://site_a.com/somepage.php
<?php
// curl function
function get_page($url){
$msg = "";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_ENCODING, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, -1);
$html = curl_exec($ch);
if (!curl_errno($ch)) {
$msg = $html;
} else {
$msg = 'Curl error: ' . curl_error($ch);
}
curl_close($ch);
return $msg;
}
// domain
$domain = "http://site_b.com";
$page_content = get_page("$domain/somepage.php");
// display fetched page
var_dump($page_content);
// navigate dom to iframe_2
$xml = new DOMDocument();
@$xml->loadHTML($page_content);
$path = new DOMXPath($xml);
$forms = $path->query("//iframe[@id='iframe_2']");
$relative_uri = "";
foreach ($forms as $form) {
// 1 result
if (strtolower($form->getAttribute('id')) === strtolower("iframe_2"))
{
$relative_uri = $form->getAttribute('src');
}
}
Задача ещё не решена.
Других решений пока нет …