我一直在尝试使用file_get_contents
检索网页内容(http://3sk.tv)。不幸的是,结果输出缺少许多元素(图像,格式化,样式等等),并且基本上看起来与我试图检索的原始页面完全不同。
我之前从未尝试使用此相同方法检索的任何其他网址,但出于某种原因,此特定网址(http://3sk.tv)拒绝正常工作。
我使用的代码是:
<?php
$homepage = file_get_contents('http://3sk.tv');
echo $homepage;
?>
我错过了什么吗?关于如何正常工作的所有建议将不胜感激。谢谢大家的时间和考虑。
答案 0 :(得分:6)
这是正常的行为,因为你只是抓取文件,而不是相关的图像,样式表等......
答案 1 :(得分:4)
我有一个快速解决方法来修复相对路径
http://www.w3schools.com/tags/tag_base.asp
只需添加代码<base>
代码即可。
<?php
$homepage = file_get_contents('http://3sk.tv');
echo str_replace(
'<head>',
'<head><base href="http://3sk.tv" target="_blank">',
$homepage
);
?>
它应该有所帮助。
答案 2 :(得分:3)
这是可以预料的。如果您查看源代码,您会注意到许多没有完整网址的地方( ex lib/dropdown/dropdown.css
)。这告诉浏览器假设http://3sk.tv/lib/dropdown/dropdown.css
。但是,在您的网站上,它将是YOURURL.COM/lib/dropdown/dropdown.css
,但不存在。大部分内容都是如此。
因此,您无法打印其他网站的来源并希望它能够正常运行。它必须是相同的URL。
嵌入其他网站的最佳方式通常是使用iframe
或some alternative。
答案 3 :(得分:2)
网页不是完全由服务器端生成的,但在HTML部分加载后它依赖于JavaScript。如果您正在寻找在浏览器中查找的页面,则可能需要使用无头浏览器 - 请参阅例如这与PhantomJS绑定:http://jonnnnyw.github.io/php-phantomjs/