Доброго времени суток! Возникла следующая проблема: открывается файл шаблона .rtf, в него вносится информация, затем создается новый файл, и необходимо осуществить не вывод предложения о загрузке файла, а сохранение его на сервере с уведомление на экране: Файл успешно создан и размещен на сервере. Код (Text): <?php // извлечь из HTTP-запроса значения переданных параметров // и сохранить их в локальных переменных $name = $_POST['name']; $score = $_POST['score']; // проверить, что в запросе имеются все необходимые параметры: // имя пользователя и его результат тестирования. if( !$name || !$score ) { //если параметров не хватает, то вывести уведомление об ошибке echo '<h1>Ошибка:</h1>Страница вызвана некорректно'; } else { // установить HTTP-заголовки, которые упростят web-браузеру // выбор приложения для обработки полученного документа header('Content-Type: text/html; charset = windows-1251'); header( 'Content-Type: application/msword' ); header( 'Content-Disposition: inline, filename=cert.rtf'); $date = date( 'F d, Y' ); // открыть файл шаблона $filename = 'PHPCertification.rtf'; $output = file_get_contents($filename); // заменить заполнители в шаблоне //на значения соответствующих переменных $output = str_replace( '<<NAME>>', strtoupper( $name ), $output ); $output = str_replace( '<<Name>>', $name, $output ); $output = str_replace( '<<score>>', $score, $output ); $output = str_replace( '<<mm/dd/yyyy>>', $date, $output ); // отправить получившийся документ в web-браузер пользователя echo $output; } ?> Примечание: в настоящее время могу понимать токо написанный код, сам с большим трудом могу чего-нибудь дописать
а в чем проблема? Код (PHP): file_put_contents("PHPCertification.new.rtf'", $output); echo 'Файл успешно создан и размещен на сервере.'; exit();
Проблема в том, что при добавлении file_put_contents запись добавляется в сам новый документ. Вот сейчас попробовал, то что вы прислали и он записал опять все в файл rtf. Добавлено спустя 3 минуты 38 секунд: Уже пробовал писать: Код (Text): $writer->save('php://output'); и все равно выпрыгивает окошко о предложении пользователю сохранить файл. Мне как раз нужно, чтобы пользователь не видел файла, файл сохраняется например тут: \apache\docs
вы это и просили. чтоб новый файл сохранился в другом файле а не в оригинальном. что не так то? закомментируйте ваши строки с header() и не будет пользователям окошко встплывать.
О! Это помогло! Спасибо! Добавлено спустя 22 минуты 54 секунды: А можете еще указать такой момент, как адрес сохранения, а то он толкает их в текущую папку.
ну я же вам дал пример, там и пишите путь какой вам нужно: Код (PHP): $dir_to_save = 'C:\www\mysite\trash\\'; // путь до каталога КУДА СОХРАНЯТЬ $file_to_save = 'cert_'.uniqid().'.rtf'; // генерируем уникальное имя файла для сохранения $path_to_save = $dir_to_save . $file_to_save; // ПОЛНЫЙ ПУТЬ куда сохранять file_put_contents($path_to_save, $output); // Сохраняем!!!
Из ходя из работы скрипта,параметр uniqid() сгенерировал случайное уникальное имя. Сейчас вместо него написал name (), чтобы добавлять в название, которое берется вот тут вот $name = $_POST['name']; Добавлено спустя 20 минут 49 секунд: А еще сейчас нашел на этом форуме "Лекарство" от Кракозяброрв, которые получаются при передаче данных в создаваемый файл. "Лекарство": Код (Text): $output=mb_convert_encoding($output, "Windows-1251", "utf8"); В инструкции было написано, что необходимо применять "Перед выводом файла". Вставляю сразу после Код (Text): $date = date( 'F d, Y' ); и ничего не получается ((