Сохранить текущую страницу как HTML на сервере
Какой подход может кто-то предложить, чтобы сохранить текущую страницу в виде HTML-файла на сервере? В этом случае также обратите внимание, что безопасность не является проблемой.
Я провел бесконечные часы в поисках этого и не нашел ни одной вещи.
Ваша помощь очень ценится, спасибо!
редактировать
Спасибо всем за вашу помощь, это очень ценилось.
6 ответов
Если вы имели в виду сохранение вывода страницы в файл, вы можете использовать для этого буферизацию. Вам нужно использовать функцию 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, вы можете сначала сохранить содержимое в переменную, а затем сохранить их в новый файл, в следующий раз вы можете проверить, существует ли 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
Используйте JavaScript для отправки document.getElementsByTagName('html')[0].innerHTML
как скрытое значение ввода или с помощью AJAX на стороне сервера. Это более полезно, чем выходная буферизация, если содержимое впоследствии просматривается / модифицируется JavaScript, о котором серверная сторона может не иметь никакого представления.
Если вы хотите сохранить полную HTML-страницу вместе с CSS, изображениями и сценариями в одном HTML-файле, вы можете использовать этот класс, который я написал:
Этот класс может сохранять HTML-страницы с изображениями, CSS и JavaScript.
Он берет URL заданной страницы и извлекает его для сохранения в заданном файле.
Класс может анализировать HTML и определять, какие изображения, файлы CSS и JavaScript ему нужны, поэтому эти файлы также загружаются и сохраняются на странице HTML, сохраняемой в локальном файле.
При желании он может пропускать код JavaScript, сохранять только содержимое страницы и сжимать полученную страницу, удаляя пробелы.
http://www.phpclasses.org/package/8305-PHP-Save-HTML-pages-complete-with-images-CSS-and-JS.html
//function to use curl to get the content of the page.
//parameter used url and $data for the posting credentials to retrieve 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);
Я чувствую, что вам нужен curl, чтобы вы могли сохранить вывод любой страницы. Используйте curl с возвращаемым значением true. и делай что хочешь с выводом.