如何将CURLOPT_HTTPHEADER页面放在iframe中?

时间:2012-11-24 16:34:27

标签: php javascript ajax curl user-agent

我必须将此页面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);
?> $

1 个答案:

答案 0 :(得分:0)

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

<?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