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

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

29.11.2009, 21:23. Показов 14879. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru