2012-06-22 4 views
1

Я пытаюсь включить скриншоты страницы, в которой зарегистрированный пользователь в данный момент включен. Я поставил кнопку, которая должна:Получение содержимого ссылки на страницу с php

  • чтения содержания ссылающейся страницы
  • сохранить его в файл
  • делают этот файл как PDF
  • перенаправление на ссылающейся странице

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

Как я могу прочитать содержимое текущей/перечислительной страницы с PHP без доступа к учетным данным пользователей? Я пробовал file_get_contents, который тоже не работал.

ответ

1

Похоже, что ваш механизм все равно будет неисправен: вы не сохраняете страницу, как она выглядит для них, а скорее сохраняете страницу, как она выглядит в CURL в какой-то момент в будущем.

Если вы хотите точное решение, то вам необходимо сохранить копию оказанной HTML где-то на стороне сервера, как вы отправить его (вы можете использовать PHP's output buffering, чтобы захватить его) и отметьте файл, сохранить с некоторыми вид ключа, который поступает к пользователю. Если пользователь нажимает кнопку, он отправляет этот ключ на сервер, который вы используете для поиска сохраненного файла HTML, и обрабатывайте его по желанию.

Значительно менее эффективный, конечно, но там вы идете. В качестве альтернативы вы можете сохранить только параметры , обработанные на странице, чтобы вы могли повторно отобразить их с помощью PHP, если это необходимо. Все еще нет завитка, но меньше сбережений продолжается. Очевидно, вам не нужно долго хранить эту информацию в кеше; всего несколько минут, поэтому достаточно хранить его в баране (например, memcache).

+0

Спасибо, Тайлер, отличные идеи. Я думаю, что я сделаю, так это то, что ссылка PDF перезагрузит страницу с теми же параметрами запросов, а также новую, которая будет использоваться для запуска буферизации вывода. Я еще не работал с этим, поэтому спасибо за рекомендацию. – Chords

+0

Просто хотел следить за тем, чтобы кто-нибудь еще читал это, чтобы сказать, что все прошло гладко. Сохранение в временном файле, захват снимка экрана, а затем удаление временного файла работало безупречно. – Chords

1

Я не считаю, что это можно сделать этически без получения учетных данных пользователя.

Смежные вопросы