将当前页面保存为HTML到服务器

有人build议将当前页面保存为HTML文件到服务器的方法是什么? 在这种情况下,还要注意安全性不是问题。

我已经花了无数个小时来寻找这个,并没有发现一件事情。

您的帮助非常感谢,谢谢!

编辑

谢谢大家的帮助,非常感谢。

如果你的意思是把一个页面的输出保存在一个文件中,你可以使用缓冲来做到这一点。 你需要使用的函数是ob_start和ob_get_contents 。

<?php // Start the buffering // ob_start(); ?> Your page content bla bla bla bla ... <?php echo '1'; // Get the content that is in the buffer and put it in your file // file_put_contents('yourpage.html', ob_get_contents()); ?> 

这会将页面的内容保存在文件yourpage.html

我想我们可以使用PHP的输出控制函数 ,可以先将内容保存到variables中,然后将它们保存到新文件中,下一次可以testing它是否存在html文件,然后再渲染,重新生成页。

 <?php $cacheFile = 'cache.html'; if ( (file_exists($cacheFile)) && ((fileatime($cacheFile) + 600) > time()) ) { $content = file_get_contents($cacheFile); echo $content; } else { ob_start(); // write content echo '<h1>Hello world to cache</h1>'; $content = ob_get_contents(); ob_end_clean(); file_put_contents($cacheFile,$content); echo $content; } ?> 

取自以下网页的示例: http : //www.php.net/manual/en/function.ob-start.php#88212

使用JavaScript发送document.getElementsByTagName('html')[0].innerHTML作为隐藏的input值,或通过ajax发送到服务器端。 如果内容之后被JavaScript遍历/修改,这比输出缓冲更有用,服务器端可能没有任何概念。

如果你正在寻找保存完整的HTML页面与CSS,图像和脚本在一个单一的HTML文件,你可以使用我写的这个类:

这个类可以保存完整的图像,CSS和JavaScript的HTML页面。

它采用给定页面的URL并将其检索以存储在给定文件中。

这个类可以parsingHTML并确定它需要的图像,CSS和JavaScript文件,所以这些文件也被下载并保存在保存到本地文件的HTML页面中。

可以select跳过JavaScript代码,仅保留页面内容,并压缩生成的页面,删除空白。

http://www.phpclasses.org/package/8305-PHP-Save-HTML-pages-complete-with-images-CSS-and-JS.html

我觉得你需要curl,所以你可以保存任何页面的输出。 使用curl with returntransfer true。 并做任何你想要的输出。

 //function to use curl to get the content of the page. //parameter used url and $data for the posting credentials to retriev information. function httpPost($url, $data){ $curl = curl_init($url); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($curl); curl_close($curl); return $response;} // $filename="abc.html"; // whatever name you want. $myfile = fopen($filename, "w") or die("Unable to open file!"); $txt = httpPost(<url>, ""); //<url> replace by url you want. fwrite($myfile, $txt); fclose($myfile);