使用php保存整个页面源

时间:2012-10-23 13:28:09

标签: php

  

可能重复:
  Save full webpage

我需要使用PHP保存外部链接的页面源,就像我们在PC中保存一样。
p.s:保存的文件夹有图像和HTML内容。

我尝试了以下代码...它只是将源代码放入tes.html,我需要保存所有图像。所以我们可以离线访问。

<?php
include 'curl.php';
$game = load("https://otherdomain.com/");
echo $game;
?>

<?php 
file_put_contents('tes.html', $game);
?>

4 个答案:

答案 0 :(得分:1)

您要做的是镜像网站。

我会使用程序wget这样做,而不是重新发明轮子。

exec( 'wget -mk -w 20 http://www.example.com/' );

请参阅:

答案 1 :(得分:0)

编写自己的解决方案来解析所有CSS,图像和JS链接(并保存它们)或检查这个问题的答案:https://stackoverflow.com/a/1722513/143732

答案 2 :(得分:0)

你需要写一个刮刀,从它的外观来看,你还不熟练。考虑学习:

  1. 网页搜寻(cURL,PHP中的StreamContext,HTTP理论)
  2. 网址路径(相对,绝对,解析)
  3. DOMDocument DOMXPath (用于解析HTML和简易标记查询)
  4. 整体 HTML 结构(IMG,LINK,SCRIPT和其他加载外部内容的标记)
  5. 整体 CSS 结构(如CSS中的url('...')加载页面所依赖的资源)
  6. 只有这样,你才能正确地镜像一个网站。但如果他们动态加载内容,就像使用Ajax一样,那你运气不好。

答案 3 :(得分:-1)

file_get_contents()也支持http(s)。例如:

$game = file_get_contents('https://otherdomain.com');