Сохранить текущую страницу в формате HTML на сервер


Какой подход может кто-нибудь предложить для сохранения текущей страницы в виде HTML-файла на сервере? В этом случае также обратите внимание, что безопасность не является проблемой .

Я потратил бесконечные часы на поиски этого, но так ничего и не нашел.

Мы очень ценим вашу помощь, спасибо!

Редактировать

Спасибо всем вам за вашу помощь, мы были очень признательны.

Author: HoLyVieR, 2010-09-23

6 answers

Если вы имели в виду сохранение выходных данных страницы в файле, вы можете использовать буферизацию для этого. Вам нужно использовать следующие функции: 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.

 60
Author: HoLyVieR, 2010-09-23 03:31:45

Я думаю, что мы можем использовать Функции управления выводом 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#88212

 9
Author: Chetan Sharma, 2010-09-23 03:34:18

Используйте JavaScript для отправки document.getElementsByTagName('html')[0].innerHTML в качестве скрытого входного значения или с помощью ajax на сторону сервера. Это более полезно, чем буферизация вывода, если содержимое впоследствии обрабатывается/модифицируется JavaScript, о чем серверная сторона может не иметь никакого представления.

 3
Author: BalusC, 2010-09-23 03:31:05

Если вы хотите сохранить полную 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

 3
Author: Sarfraz, 2013-10-25 09:44:21

Я чувствую, что вам нужен curl, чтобы вы могли сохранять выходные данные любых страниц. Используйте curl с параметром returntransfer true. и делайте с выводом все, что хотите.

 1
Author: Satya Prakash, 2010-09-23 07:10:56
//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);
 0
Author: shaan gola, 2018-01-13 11:08:01