Php сохранить страницу https

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

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

Вы задали тот же вопрос всего 14 часов назад: [Сохранение источника себя (PHP)] — почему бы вам не попытаться получить ответ вместо того, чтобы публиковать его снова? ( stackoverflow.com/questions/3769504/saving-source- of-self-php )

oezi — Похоже, я был прав в создании этого нового вопроса. Я получил правильный ответ . Новый вопрос, разные люди, разные ответы. Вы можете пойти дальше и закрыть этот вопрос сейчас.

Эти вопросы не совсем то же самое. Они очень похожи, но различаются по цели: здесь это сервер, а другой вопрос — это сам браузер.

6 ответов

Если вы хотели сохранить вывод страницы в файле, вы можете использовать буферизацию для этого. Функция, которую вам нужно использовать, ob_start и ob_get_contents.

 Your page content bla bla bla bla . 

Это сохранит содержимое страницы в файле yourpage.html .

У меня тоже был такой же вопрос. Спасибо за ответ. НО где этот yourpage.html сохраняется? Я не смог найти файл в моей директории

@Walahh Если chdir не был вызван, он должен находиться в той же папке запрошенного скрипта. Если вы не уверены, что это такое, вы можете вызвать getcwd .

Читайте также:  Кнопка

Я думаю, что мы можем использовать Функции контроля вывода PHP, вы можете сначала сохранить содержимое в переменную, а затем сохранить их в новом файл, в следующий раз вы можете протестировать его html файл, а затем визуализировать, чтобы еще раз сгенерировать страницу.

 time()) ) < $content = file_get_contents($cacheFile); echo $content; >else < ob_start(); // write content echo '

Hello world to cache

'; $content = ob_get_contents(); ob_end_clean(); file_put_contents($cacheFile,$content); echo $content; > ?>

Если вы хотите сохранить полную html-страницу вместе с css, изображениями и сценариями в одном html файле, вы можете использовать этот класс, который я написал:

Этот класс может сохранять HTML-страницы в комплекте с изображениями, CSS и JavaScript.

Он берет URL-адрес данной страницы и извлекает ее для хранения в заданном файл.

Класс может анализировать HTML и определять, какие изображения, CSS и Файлы JavaScript, которые ему нужны, поэтому эти файлы также загружаются и сохранен внутри HTML-страницы, сохраненной в локальном файле.

Возможно, он может пропустить код JavaScript, сохранить только страницу содержимое и сжатие результирующей страницы, удаляющей пробелы.

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

Спасибо, BalusC. Так что, если я использую var $ s = document.getElements . (в php), я могу записать весь var в файл на сервере?

JavaScript работает на веб-браузере, а не на веб-сервере. Вы знаете JS? В любом случае, учитывая ваш комментарий, я думаю, что этот ответ, в конце концов, не тот, который вам нужен 🙂 Вы, вероятно, скорее хотите сохранить сгенерированную PHP-страницу HTML, а не текущую открытую HTML-страницу (во всем ее текущем состоянии на стороне клиента). Проверьте ответ Холивира.

Источник

Получить html код страницы (протокол — https)

Как получить HTML код указанной страницы?
Например, я создал форму, со строкой "url", как мне получить HTML-код той страницы котору ввели в.

Получить html код любой страницы
Здавствуйте,задача простая: Как с помощью php можно получить содержание любой страницы в.

Протокол https:// выводит json в браузер
По событию js сериализую данные формы и через ajax отпраляю их на PHP . Сервер принимает данные.

Получить содержимое из html страницы
Всем привет! Помогите пожалуйста разобраться, с такой задачкой столкнулась впервые, можно сказать.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
 ini_set('max_execution_time', 600); function curl_get($host, $referer = null){ $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_REFERER, $referer); curl_setopt($ch, CURLOPT_USERAGENT, "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_URL, $host); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); $html = curl_exec($ch); echo curl_error($ch); curl_close($ch); return $html; } $result = curl_get("https://www.sima-land.ru/707241/shampur-uglovoy-550x10x1-0/"); echo iconv("utf-8", "cp1251", $result); ?>

Добавлено через 44 минуты
и еще. preg_match не парсит название, в то время как ereg работает на ура, но выводит уведомление об устаревшей функции:

$pattern = "

\"name\">(.*)

"
; preg_match($pattern, $result, $matches); echo $matches;

Источник

PHP https / ssl подключение через curl (если не грузит страницу)

Как загрузить страницу с помощью php? Один из вариантов через curl.

У меня был напряг с сертификатами которые нужно было отключить. Вместо страницы выдавалась пара кракозябл или непонятных символов. После отключения сертификатов, страница нормально загрузилась. Правда это не всегда подойдет.

Кстати данный пример дает возможность С сайта https:// требуется скачать страницы в файл для последующей обработки.

$ch = curl_init(); // инициализация CURL
// Ввод пароля и идентификация
curl_setopt($ch, CURLOPT_URL, «https://www.xxxx.ru/login.htms»); //адрес страницы лога

curl_setopt($ch, CURLOPT_PROXY, «prox:port»); // через прокси

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // отключение сертификата
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // отключение сертификата

// отправка логина и пароля
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, «LOGIN=ПОЛЬЗОВАТЕЛЬ&PASSWD=ПАРОЛЬ&submit=Login»);
//———————————————-

//сохранение кукизов
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_COOKIEJAR,’cookie.txt’);
curl_setopt($ch, CURLOPT_COOKIEFILE, «cookie.txt»);
curl_setopt($ch, CURLOPT_HEADER, TRUE);

if($ref!=») curl_setopt($ch, CURLOPT_REFERER, $ref);

if($cookie!=») curl_setopt($ch, CURLOPT_COOKIE, $cookie);
// прописывание броузера
curl_setopt($ch, CURLOPT_USERAGENT, ‘Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)’);
//—————————————————————
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
//—————————————————————-

// сдесь сохранение страницы которая загрузилась бы с URL
$fp = fopen(«proba.htm», «w»); // имя сохраняемого файла
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
// закрытие файла
fclose($fp);

// print_r(curl_getinfo($ch)); // вывод структуры запроса

Источник

PHP CURL для получения содержимого страницы https

Я пытаюсь использовать cURL для получения содержимого страницы HTTPS.

Проблема в том, что я не могу захватить документ, и я понятия не имею, почему.

function download_page($url)< $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"); return curl_exec($ch); > 

Вероятно, вы столкнулись с той же проблемой, с которой сталкивается этот парень . И, похоже, он исправил это. Вероятно, проблема заключается в согласовании SSL-сертификата и о том, как cURL должен сказать, что сертификат, отправляемый сервером, может быть доверен.

$result = curl_exec($ch); if (!$result)

скорее всего, вас укусит тот факт, что завиток больше не поставляется с внутренним списком «действительных» ЦС и, следовательно, не может проверить сертификат удаленного сайта как действительный. Вам придется отключить проверку сертификата и / или установить список самих ЦС самостоятельно

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

ps никогда не предполагал, что операция на удаленном ресурсе преуспела – всегда проверяйте условия ошибки и выводите любые сообщения об ошибках. вы сэкономите себе много голов, крах, включив свет, вместо того, чтобы стучать в темноте.

Код, который вы предоставили, действительно отлично подходит для меня, без изменений. Возможно, у вас проблемы с поддержкой SSL, как упоминал RolfVandeKrol. Чтобы попытаться исправить эту идею, вы можете отключить проверку равных SSL с помощью:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

Чтобы увидеть, что происходит на самом деле, перед изменением вы можете использовать curl_getinfo($ch) для просмотра всех возвращенных заголовков. Это должно дать вам знать, какой ответ вы используете для правильного диагноза.

Кроме того, вы можете изменить свою функцию, чтобы правильно закрыть ручку curl с curl_close($ch); , Попробуйте вместо return curl_exec($ch); , с помощью:

 . $contents = curl_exec($ch); curl_close($ch); return $contents; > 

Источник

Оцените статью