2016-03-06 2 views
1

Я пытаюсь вставить свой профиль с внешнего сайта (url) в свой блог.PHP file_get_contents() не загружает внешний динамический контент

Перекрестный домен запрещен, поэтому iframe, AJAX и загрузка jquery не работают. PHP file_get_contents() делает, но динамически созданный контент внутри страницы не загружается.

Помогите мне понять, почему и как я могу решить эту проблему?

Я использую такой код:

<head> 
    <base href="https://bookmate.com/"> 
</head> 

<?php 
    $url = 'https://bookmate.com/kirillmazur/finished'; 
    echo file_get_contents($url); 
?> 
+1

Осмотрите запросы, сделанные в вашем браузере, и повторите их с помощью 'file_get_contents()'. – PeeHaa

+0

Оформить заказ ниже. они удаляют сайт, используя локальный путь для некоторых js-файлов. если вы используете file_get_contents, вам нужны локальные файлы на вашем хосте. – Vigikaran

ответ

0

это из-за отсутствия двух файла JavaScript. вы можете попробовать, добавив эти два файла в к локальной directiry

<script src="/javascript/core.js?4417dc0"></script> 
    <script src="/javascript/modules.js?4417dc0"> 

проверки все недостающие файлы в локальном каталоге с помощью enter image description here ИНГ браузера консоли

+0

Вот почему я использую «

+0

используйте консоль браузера, чтобы получить полное сообщение об ошибке для отладки вашего кода. – Vigikaran

+0

Я всегда использую консоль браузера, и кажется, что эти ошибки с вашего изображения не мои :) Я думаю, что это один из ваших chrome-плагинов (VK. Startup, возможно ...) генерирует ошибку для консоли, потому что у меня нет таких ошибок , –

0

Надежда Это поможет. У меня была та же проблема, вот что я сделал:

Я использовал IFRAME и JavaScript, чтобы получить страницу со всеми динамически нагруженных содержание

contents =document.getElementById('load_page1').contentWindow.document.documentElement.outerHTML; 

Я загрузил страницу в IFRAME

<iframe id="load_page1"></iframe>  

jQuery(document).ready(function(){ 
     var url="www.google.com" 
     jQuery('#load_page1').attr('src',url); 
}); 

затем из Javascript Я получаю содержимое этого iframe в переменной при событии нажатия кнопки и отправил его через ajax, закодировав его в base64

<input type="button" id="load_css" /> 


jQuery(document).on('click',"#load_css",function(){ 


contents =document.getElementById('load_page1') 
    .contentWindow.document.documentElement.outerHTML; 
contents = btoa(contents); 


jQuery.ajax({ 
     url:'process.php', 
     data:{contents:contents}, 
     method:"post"}).done(function(data){ 
        jQuery('.css_target').html(data); 
     }); 
}); 

и на странице ajax я выполнил всю обработку, декодируя ее обратно из base64 в строку.