PHP file_get_contents()不加载外部动态内容

时间:2016-03-06 14:05:38

标签: php cross-domain 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);
?>

2 个答案:

答案 0 :(得分:0)

这是由于缺少两个javascript文件。您可以尝试将这两个文件添加到本地directiry

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

使用enter image description here浏览器控制台

检查本地目录中所有丢失的文件

答案 1 :(得分: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的内容,并通过将其编码到base64中的ajax发送它

 <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解码回字符串。