Intereting Posts
Цитирование через переменные $ _POST Может ли php запрашивать результаты из предыдущего запроса? Как проверить электронную почту на PHP? Все электронные письма отправляются в папку спама GMail, Hotmail и других почтовых провайдеров, использующих phpmailer Как выглядит поиск в Gmail так быстро? Номер формата mc_gross PayPal? PHP register_shutdown_function для запуска, когда сценарий убит из командной строки? Отправьте параметр param в промежуточное ПО как аргумент Laravel Потерянное соединение с сервером MySQL при «считывании исходного пакета связи», системная ошибка: 0 Silverstripe DataObjects as Pages Part 2 tutorial – проблема с боковой панелью Возвращает значение, если нет записи (MYSQL + PHP) Echo не показывает скопированный текст из txt-файла для формирования текстовой области PHP Загрузка изображения продукта Magento 1.8 на Firefox не работает возможно ли сделать звуковой сигнал в php, как в gmail? Есть ли способ (в PHP) обнаружить, был ли скрипт вызван загрузкой jQuery или нет?

вывод php-запроса сохранить как текстовый файл

У меня есть страница на моем веб-сайте, которая извлекает информацию из таблицы и отформатирована с помощью css.

Я не могу найти способ сохранить страницу как есть, в виде текстового или pdf-файла. Я нашел pdf-сайт, который делает это http://pdfmyurl.com/, но я надеялся сделать то же самое на своем собственном сайте с внешними сайтами.

Веб-страница имеет session удостоверяющий, что пользователь вошел в систему, и в зависимости от пользователя user_id зависит от того, какие данные извлекаются из базы данных. Чтобы уточнить, я хочу, чтобы пользователи могли просматривать эту страницу. На странице я надеялся на кнопку "SAVE TO COMPUTER" , которая сохранит эту страницу как есть.

я нашел

 <?php //Link to download file... $url = "savechoice.php"; //Code to get the file... $data = file_get_contents($url); //save as? $filename = "test.txt"; //save the file... $fh = fopen($filename,"w"); fwrite($fh,$data); fclose($fh); //display link to the file you just saved... echo "<a href='".$filename."'>Click Here</a> to download the file..."; ?> 

Но это просто сохраняет страницу как текст, в том числе не выполненный php. Я также изменил URL-адрес на полный URL-адрес, и хотя запуск PHP возвращается, поскольку сеанс не распознается.

Пожалуйста, рассмотрите возможность использования file_put_contents () . Также убедитесь, что у вас есть права на запись на сервере. Вы можете сделать это, используя is_writable () .

Но это просто сохраняет страницу как текст, включая php. -> Вы хотите, чтобы сервер обрабатывал savechoice.php ? Это совершенно другое. Когда вы открываете файлы с помощью file_get_contents () , он получает файл именно так, как вы видите его при открытии файла. Он не будет выполнять файл.

Вам нужно изменить способ работы savechoice.php . Если это сценарий, который имеет некоторый вывод, вы можете вместо этого вывести его в переменную, которую вы поместите в свои $data . Например:

savechoice.php

 <?php echo 'Hello World!'; ?> 

Измените это на следующее:

 <?php $echo = 'Hello World!'; ?> 

В другом файле вы можете просто использовать file_put_contents($echo); после вызова savechoice.php используя require () .

Вероятно, вы захотите еще чего-то подобного:

 ob_start(); include('savechoice.php'); $text = ob_get_clean(); в ob_start(); include('savechoice.php'); $text = ob_get_clean(); 

но на самом деле лучшим способом является изменение вашего кода в файле savechoice.php, чтобы он мог быть вызван как функция, поэтому вы можете иметь больше:

 $text = get_choice(...); 

вместо этого, что соответствующая логика выводит ТОЛЬКО данные, которые вы хотите, без оберточной бумаги html. Вызов HTTP-запросов на ваш собственный сервер – бесполезная трата ресурсов практически во всех случаях использования, особенно когда вы используете сеансы (и особенно стандартные сеансы на основе файлов).

Если вы хотите получить выходные данные файла вместо необработанного содержимого, вам нужно убедиться, что файл выполняется как php.

Вы можете включить его (я вижу, что уже есть другой ответ …), или вы можете использовать:

 $url = "http://localhost/path/to/file/savechoice.php"; 

с вашим исходным кодом, чтобы убедиться, что файл обрабатывается веб-сервером.

Это потому, что вы загружаете файл, а не URL-адрес файла.

Предположим, что домен вашего сайта http://www.example.com и что файл «savechoice.php» находится в корневом каталоге веб-сайта. Если вы измените $ url на

 $url = "http://www.example.com/savechoice.php"; 

Затем php в файле будет интерпретироваться, и вы увидите веб-страницу, а не php.