file_get_contents 没有返回整个网页
file_get_contents not returning entire webpage
我一直在尝试使用 file_get_contents
检索网页 (http://3sk.tv) 的内容。不幸的是,生成的输出缺少许多元素(图像、格式、样式等),并且基本上看起来与我要检索的原始页面完全不同。
以前从未发生过任何其他 URLs 我曾尝试使用相同的方法进行检索,但由于某种原因,这个特定的 URL (http://3sk.tv) 拒绝工作正确。
我使用的代码是:
<?php
$homepage = file_get_contents('http://3sk.tv');
echo $homepage;
?>
我错过了什么吗?将不胜感激有关如何使其正常工作的所有建议。谢谢大家的时间和考虑。
这是正常行为,因为您只是抓取文件,而不抓取相关图像、样式表等...
这是意料之中的事情。如果您查看源代码,您会注意到许多地方没有完整的 URL (ex lib/dropdown/dropdown.css
)。这告诉浏览器假定 http://3sk.tv/lib/dropdown/dropdown.css
。但是,在您的网站上,它将是 YOURURL.COM/lib/dropdown/dropdown.css
,这并不存在。大部分内容都是这种情况。
因此,您不能只打印另一个网站的源代码并期望它能正常工作。它需要相同 URL.
嵌入另一个网站的最佳方式通常是只使用 iframe
或 some alternative。
该网页并未完全在服务器端生成,但它在 HTML 部分加载后严重依赖 JavaScript。如果您正在寻找在浏览器中呈现页面的方式,您可能需要一个无头浏览器 - 参见例如此绑定到 PhantomJS:http://jonnnnyw.github.io/php-phantomjs/
我有一个快速解决方法来修复相对路径
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
);
?>
应该有帮助。
我一直在尝试使用 file_get_contents
检索网页 (http://3sk.tv) 的内容。不幸的是,生成的输出缺少许多元素(图像、格式、样式等),并且基本上看起来与我要检索的原始页面完全不同。
以前从未发生过任何其他 URLs 我曾尝试使用相同的方法进行检索,但由于某种原因,这个特定的 URL (http://3sk.tv) 拒绝工作正确。
我使用的代码是:
<?php
$homepage = file_get_contents('http://3sk.tv');
echo $homepage;
?>
我错过了什么吗?将不胜感激有关如何使其正常工作的所有建议。谢谢大家的时间和考虑。
这是正常行为,因为您只是抓取文件,而不抓取相关图像、样式表等...
这是意料之中的事情。如果您查看源代码,您会注意到许多地方没有完整的 URL (ex lib/dropdown/dropdown.css
)。这告诉浏览器假定 http://3sk.tv/lib/dropdown/dropdown.css
。但是,在您的网站上,它将是 YOURURL.COM/lib/dropdown/dropdown.css
,这并不存在。大部分内容都是这种情况。
因此,您不能只打印另一个网站的源代码并期望它能正常工作。它需要相同 URL.
嵌入另一个网站的最佳方式通常是只使用 iframe
或 some alternative。
该网页并未完全在服务器端生成,但它在 HTML 部分加载后严重依赖 JavaScript。如果您正在寻找在浏览器中呈现页面的方式,您可能需要一个无头浏览器 - 参见例如此绑定到 PhantomJS:http://jonnnnyw.github.io/php-phantomjs/
我有一个快速解决方法来修复相对路径
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
);
?>
应该有帮助。