Сохранить текущую страницу как 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. и делай что хочешь с выводом.

Другие вопросы по тегам