С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/79: Рейтинг темы: голосов - 79, средняя оценка - 4.51
2 / 2 / 0
Регистрация: 29.11.2009
Сообщений: 5

Работа с RTF - не работает замещение заполнителей в шаблоне данными

29.11.2009, 21:23. Показов 14887. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться.
Не работает замещение заполнителей в шаблоне данными.
Подскажите как решить возникшую проблему.
Нужно ли что-то еще?

Index!.php

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<html>
<body>
<h1><p align = center>
Введите:
</h1>
<p>Для формирования диплома заполните следующие поля:
<form action="index!.php" method="post">
<p>Регистрационный номер: <?php if ($_POST["reg"] == '')
 {
?>
<input type="text" name="reg" value="
<?php print $_GET["reg"]?>" size="15"/>
<?php
 } else {
 print $_POST["reg"];
 }
?>
<p>Дата: <?php if ($_POST["Date1"] == '')
 {
?>
<input type="text" name="Date1" value="
<?php print $_GET["Date1"]?>" size="15"/>
<?php
 } else {
 print $_POST["Date1"];
 }
?>
<p>Фамилия, имя и отчество (в родительном падеже): 
<?php if ($_POST["FIO"] == '')
 {
?>
<input type="text" name="FIO" value="
<?php print $_GET["FIO"]?>" size="70" />
<?php
 } else {
 print $_POST["FIO"];
 }
?>
<p>Присвоенная квалификация: <?php if ($_POST["Kval"] == '')
 {
?>
<input type="text" name="Kval" value="
<?php print $_GET["Kval"]?>" size="90"/>
<?php
 } else {
 print $_POST["Kval"];
 }
?>
<p>По специальности: <?php if ($_POST["Prof"] == '')
 {
?>
<input type="text" name="Prof" value="
<?php print $_GET["Prof"]?>" size="90"/>
<?php
 } else {
 print $_POST["Prof"];
 }
?>
<p>Дата выдачи: <?php if ($_POST["Date2"] == '')
 {
?>
<input type="text" name="Date2" value="
<?php print $_GET["Date2"]?>" size="15"/>
<?php
 } else {
 print $_POST["Date2"];
 }
?>
<p>
<br>
<input type="submit">
</p>
</form>
</body>
</html>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
// проверка получения всех необходимых данных
if(($_POST["reg"] == '')||
($_POST["Date1"] == '')||
($_POST["FIO"] == '')||
($_POST["Kval"] == '')||
($_POST["Prof"] == '')||
($_POST["Date2"] == ''))
{
print "<p>Введены не все данные.";
}
else
{
// обеспечение связей со сценариями,
// которые генерируют сертификаты
?>
<p>Нажмите на расположенную
 по центру кнопку <<Сформировать>>.
<form action = "rtf.php" method = "post">
<center>
<input type = "image" src = "certificate.GIF" border = 0>
</center>
<input type = "hidden" name = "reg" 
value = "<?php print $_POST["reg"]?>">
<input type = "hidden" name = "Date1" 
value = "<?php print $_POST["Date1"]?>">
<input type = "hidden" name = "FIO" 
value = "<?php print $_POST["FIO"]?>">
<input type = "hidden" name = "Kval" 
value = "<?php print $_POST["Kval"]?>">
<input type = "hidden" name = "Prof" 
value = "<?php print $_POST["Prof"]?>">
<input type = "hidden" name = "Date2" 
value = "<?php print $_POST["Date2"]?>">
</form>
<?}
?>
rtf.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
// генерация заголовков, призванных облегчить браузеру выбор
// требуемого приложения
header ( "Content-type: application/msword" );
header ( "Content-Disposition: inline, filename=Diplom.rtf ");
// открытие файла шаблона
$filename = "qwer.rtf";
$fp = fopen ($filename, "r" );
// считывание шаблона в переменную
$output = fread($fp, filesize( $filename ));
fclose ($fp);
// замещение заполнителей в шаблоне данными
$output = str_replace("«reg»", $_POST["reg"], $output);
$output = str_replace("«Date1»", $_POST["Date1"], $output);
$output = str_replace("«FIO»", $_POST["FIO"], $output);
$output = str_replace("«Kval»", $_POST["Kval"], $output);
$output = str_replace("«Prof»", $_POST["Prof"], $output);
$output = str_replace("«Date2»", $_POST["Date2"], $output);
// отправка сгенерированного документа в браузер
echo$output;
?>
В RTF файл содержит данные:

«reg»
«Date1»
«FIO»
«Kval»
«Prof»
«Date2»
2
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.11.2009, 21:23
Ответы с готовыми решениями:

Используя статическое наследование, статическое замещение, виртуальное или динамическое замещение, написать программу-калькулятор
Помогите ребят, препод барыга. пришёл. о языке ни слова. Дал задание и ушёл( это первые две пары такие были(

Формировать rtf документ с данными, введенными пользователем
Все привет! Возможно ли следующее: 1. html страница с несколькими текстовыми полями и combobox'ами. 'это-то возможно :) 2. После...

Заполнение таблицы в шаблоне Word данными из динамического Access
Задача. (1) Имеем файл шаблона Word.dotx (2) Файл БД Access.mdb Кнопку на форме, которая ДОЛЖНА читать ВСЕ строки из (2) и...

4
7 / 7 / 1
Регистрация: 05.08.2009
Сообщений: 21
30.11.2009, 04:47
прикрепите пожалуйста оригинальный файл qwer.rtf
а ещё лучше все три файла.

Добавлено через 13 минут
попробуйте так

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
// генерация заголовков, призванных облегчить браузеру выбор
// требуемого приложения
header ( "Content-type: application/msword" );
header ( "Content-Disposition: inline, filename=Diplom.rtf ");
// открытие файла шаблона
$filename = "qwer.rtf";
$fp = fopen ($filename, "r" );
// считывание шаблона в переменную
$output = fread($fp, filesize( $filename ));
fclose ($fp);
// замещение заполнителей в шаблоне данными
$output = str_replace("\'abreg\'bb", $_POST[reg], $output);
$output = str_replace("\'abDate1\'bb", $_POST[Date1], $output);
$output = str_replace("\'abFIO\'bb", $_POST[FIO], $output);
$output = str_replace("\'abKval\'bb", $_POST[Kval], $output);
$output = str_replace("\'abProf\'bb", $_POST[Prof], $output);
$output = str_replace("\'abDate2\'bb", $_POST[Date2], $output);
// отправка сгенерированного документа в браузер
echo$output;
?>
PS.

Вообще для начала нужно было почитать http://www.codenet.ru/progr/formt/rtf1.php RTF - Описание формата файла
или открыть rtf файл в блокноте
2
2 / 2 / 0
Регистрация: 29.11.2009
Сообщений: 5
30.11.2009, 05:06  [ТС]
Благодарю.
0
21 / 21 / 2
Регистрация: 29.06.2009
Сообщений: 283
15.04.2010, 22:45
Спасибо. Тоже искал. Замечательный Пример.
Надоело договора заполнять в ручную, уж больно ошибок много.
0
1 / 1 / 1
Регистрация: 05.02.2013
Сообщений: 227
Записей в блоге: 1
05.10.2015, 20:57
у меня не получается - подскажите - заполнителем в rtf является просто текст,
или закладка - можно пример rtf в студию?

Добавлено через 1 час 11 минут
разобрался, помогло
PHP
1
$output = str_replace('reg', $_POST[reg], $output);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.10.2015, 20:57
Помогаю со студенческими работами здесь

Работа с rtf
Есть ли библиотека .net которая умеет работать с rtf?

Работа с RTF форматом
здравствуйте, существует задача - прочитать RTF файл (вообще-то первоначально требовалось работать с Doc -ским файлом, но можно и...

Работа с RTF файлами
Добрый день. честно говоря уперся и не знаю в какую сторону двигаться. есть 18 этикеток, в формате RTF. их будут печатать каждый...

Работа С Rtf Полями.
Доброго времени суток! Прошу помочь решить задачку, как хранить историю изменения полей. Вообщем у меня получилось сохранять только 2-й...

работа с rtf форматом
задача заключается в том что мы читаем текст из *.тхт файла в который вставлены теги RTF формата (например :...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru