加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何从远程页面获取iframe内容?

发布时间:2020-12-13 17:24:12 所属栏目:PHP教程 来源:网络整理
导读:我认为 PHP是无用的,因为在执行php之后插入了iframe,或者我错了? 因此,我所知道的唯一解决方案是使用Javascript / jQuery. 例如.如果JS与iframe在同一页面上,这将有效: htmlheadtitle/titlescript type="text/javascript" src="http://ajax.googleapis.com
我认为 PHP是无用的,因为在执行php之后插入了iframe,或者我错了?

因此,我所知道的唯一解决方案是使用Javascript / jQuery.

例如.如果JS与iframe在同一页面上,这将有效:

<html>
<head>
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript">

  $(function() {
    var myContent = $("#iFrame").contents().find("#myContent")
  });

</script>
</head>
<body>
  <iframe src="mifile.html" id="iFrame" style="width:200px;height:70px;border:dotted 1px red" frameborder="0">
     <div id="myContent">
        iframe content blablabla
     </div>
  </iframe>
</body>
</html>

但是我使用Simple HTML DOM库来抓取远程网页,如:

$url = 'http://page-with-some-iframe.com/';
            $html = file_get_html( $url );

            // Find iframes and put them in an array
            $iframes_arr = array();
            foreach($html->find('iframe') as $element) {
                $iframes_arr[] = $element->outertext;
            }
var_dump($iframes_arr);
die();

但很明显,没有返回任何内容;(因为在运行php之后会显示iframe;(

所以,我在想我可能需要注入这段代码:

<script type="text/javascript">

  $(function() {
    var myContent = $("#iFrame").contents().find("#myContent")
  });

</script>

在我抓取的页面的标题中存储在$html中.

任何想法如何获得这样的iframe内容,或者这种过于复杂的方法和一些更简单的解决方案确实存在?

解决方法

由于原始策略相同,您将无法使用javascript访问iframe内的远程页面文档.

如果您知道页面的URL,则可以使用PHP CURL来检索它

<?php 
        // Initialise a cURL object
        $ch = curl_init(); 

        // Set url and other options
        curl_setopt($ch,CURLOPT_URL,"http://page-with-some-iframe.com");
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 

        // Get the page contents
        $output = curl_exec($ch); 

        // close curl resource to free up system resources 
        curl_close($ch);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读