PHP по электронной почте всю страницу без OB - PullRequest
0 голосов
/ 20 сентября 2011

У меня есть страница, которая дублирует страницу печати и электронную версию страницы на нашем сайте. Страница не может быть найдена пользователем, но загружается в iframe и распечатывает или отправляет электронную почту в зависимости от того, какую кнопку пользователь нажал, чтобы загрузить ее через GET. то есть. ?purpose=print ?purpose=email

Теперь функция печати запускает JS window.pint (), тогда как функция электронной почты использует PHP html mail. Для того, чтобы получить содержимое всей страницы, я использовал функции OB

ob_end_start();
// page content
ob_get_contents();
ob_end_clean();

Это, однако, мешает моей функции печати и другим JS на странице. Есть ли другой способ получить содержимое страницы и передать его в параметр $message электронного письма?

Любые идеи,

Marvelous

Ответы [ 3 ]

1 голос
/ 20 сентября 2011

Вы имеете в виду, что использование функций OB влияет на правильное отображение вашей страницы?

Вы пробовали что-то подобное:

ob_end_start();
// page content
if(!empty($_GET['purpose']) && $_GET['purpose'] == "email") {
    $message = ob_get_contents();
    ob_end_clean();
    // your code for sending the $message
} else {
    ob_end_flush();
}

То, что это делает, это выводит страницу нормально, если purpose не установлен или является чем-то отличным от «email». Если вы хотите отправить по электронной почте и , чтобы отобразить содержимое, просто замените ob_end_clean на ob_end_flush (в этом случае вам не нужно условие if).

1 голос
/ 20 сентября 2011

Не используйте JS для визуализации этой страницы.

Это было бы самым простым решением.

Я не вижу здесь никаких проблем.Вам нужен контент, и у вас, очевидно, есть контент.Просто отправьте его тогда

0 голосов
/ 20 сентября 2011

да, используйте curl () , сохраните содержимое страницы (тело возврата) и отправьте его по почте. Это должно работать лучше, чем ob _ * - функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...