【问题标题】:How to put CURLOPT_HTTPHEADER page in iframe?如何将 CURLOPT_HTTPHEADER 页面放入 iframe?
【发布时间】:2012-11-12 15:32:56
【问题描述】:

我必须把这个页面:http://www.tvindiretta.com/m/ 放在 iframe 中。此页面由 cURL 驱动。他是它的内容。当我尝试将此网址:http://www.tvindiretta.com/m/index.php 放入 iframe(带标签)时,浏览器将重定向到 iframe 网址。如何将此页面保留在 iframe 中。我必须更改用户用户代理。我是 cURL 中的一个完整的菜鸟,但请帮助我。他是/m/index.php页面源代码:

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://www.tvindiretta.com/");
curl_setopt($ch, CURLOPT_MAXREDIRS, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('User-Agent: Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_2_1 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5H11 Safari/525.20'));

curl_exec($ch);
$result = curl_exec ($ch);
curl_close ($ch);

print $result;
curl_close($ch);
?> $

【问题讨论】:

  • cURL 与 iframe 没有任何关系。你到底想做什么?防止框架破坏?
  • 我只想把这个页面:tvindiretta.com/m放到一个iframe中
  • 您必须修改页面,删除执行框架破坏的 JavaScript。这不是使用内容的合法方式。

标签: php javascript ajax curl user-agent


【解决方案1】:

我认为此网页上没有用户代理重定向,因为

<?php
if (isset($_GET['get'])){

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://www.tvindiretta.com/m");
    curl_setopt($ch,  CURLOPT_RETURNTRANSFER, TRUE);
    curl_exec($ch);
    $result = curl_exec ($ch);
    curl_close ($ch);
    print $result;

}
else{
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<iframe src="test.php?get" style="position:absolute; top:100px; left:100px; width:400px; height:400px;"/>
</body>
</html>
<?php } ?>

似乎把页面搞砸了,但还是给我提供移动内容。

所以我猜这里真正的问题是该页面内的 javascript 代码:

在 html5 中,您有一个新的iframe attribute“沙盒”,它允许您限制 iframe 的内容行为。 不幸的是,这似乎只有 Chrome 和 Safari 支持。

这里的一个想法可能是尝试抓取网页的内容(例如,在 PHP 中使用 DomDocument),只保留您感兴趣的内容,并尝试重现它们的风格。说起来容易做起来难,但我找不到更干净的方法。

由于您似乎有兴趣获得电视节目,因此您可以检查专用的 xml scaper XMLtv

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    相关资源
    最近更新 更多