| |
|
|
| | В настоящее время предоставляемая пользователю информация собирается из сведений, находящихся в двух файлах. В файле 17-11-2007.php примерно такой код:
<?php
$sun_voshod = "9:07"; // Время восхода Солнца
$sun_zahod = "16:00"; // Время захода Солнца
?>
|
А в файле 17-11-2007.htm такой:
<html>
<head>
<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Долгота дня</title>
</head>
<body>
<p>Восход Солнца:
<?php
include "17-11-2007.php" ;
echo $sun_voshod ;
?>
</p>
<p>Заход Солнца:
<?php
include "17-11-2007.php" ;
echo $sun_zahod ;
?>
</p>
</body>
</html>
|
Пользователь вызывает файл 17-11-2007.htm и получает полный объем сведений.
А можно ли средствами рнр преобразовать эту конструкцию таким образом, что бы образовался новый файл 17-11-2007-1.htm, содержащий весь объем сведений, и который можно было бы запускать даже без поддержки рнр? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(17.11.2007 в 15:38)
| | | Читайте о буфферизации и о том, как сохранить текст в файл. | |
| |
|
|
| |
|
|
| |
для: SHAman
(17.11.2007 в 16:03)
| | | автор: SHAman Читайте о буфферизации и о том, как сохранить текст в файл.
Текст в файл я обычно сохраняю последовательностью операторов fopen, fputs и fclose . Как я полагаю, они подойдут и в этом случае. Нюанс в том, чтобы в сохраняемом файле сохранились и значения переменных из подключенного файла. | |
| |
|
|
| |
|
|
| |
для: Владимир55
(17.11.2007 в 15:38)
| | | там ошибка в файле.htm два раза include "17-11-2007.php" ;
второй раз лишний , файл уже считан | |
| |
|
|
| |
|
|
| |
для: EXP
(17.11.2007 в 16:17)
| | | На сколько я знаю, include действует только в течение одного сеанса рнр, так что при начале следующего сеанса его необходимо повторить.
Разве не так? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(17.11.2007 в 16:22)
| | | сеанс ограничен не <?php ... ?>, а всем файлом | |
| |
|
|
| |
|
|
| |
для: bronenos
(17.11.2007 в 16:27)
| | | Попробовал, и оказалось именно так, как Вы говорите! Большое спасибо, буду знать. Эта конструкция у меня часто встречается, так что польза от Вашего замечания весьма ощутима!
Но все же, как достичь того, чтобы переписать htm-файл с сохранением значений переменных из подключенного файла? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(17.11.2007 в 15:38)
| | |
<?php
ob_start();
?>
<html>
<head>
<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Долгота дня</title>
</head>
<body>
<p>Восход Солнца:
<?include "17-11-2007.php" ;
echo $sun_voshod ;
?>
</p>
<p>Заход Солнца:
<?php
echo $sun_zahod ;
?>
</p>
</body>
</html>
<?php
$file = ob_get_contents();
// теперь надо $file записать в файл :)
?>
|
это типо кеш получается :) | |
| |
|
|
| |
|
|
| |
для: CrazyAngel
(17.11.2007 в 16:51)
| | | Очень интересное решение! И сам принцип очень интересен - его можно будет применить и в других случаях.
Однако есть и одно "но"....
Дело в том, что этих пар файлов очень много (тысяча). И здесь получается, что каждый из них должен быть запущен.
А вот бы сделать так, чтобы на специально созданной странице написать соответствующий код, в соответствии с которым была бы взята информация из htm-файла и из php-файла, и из нее сформирован обобщающий htm-код, который бы и записался в новый файл.
Есть ли такая возможность?
(Можно считать информационный рнр-файл в переменную и найти в ней нужные значения, которые и подставить в htm-файл, удалив оттуда инклуд и прочее. Такое решение я себе представляю. А можно ли сделать что-то еще, лучшее?) | |
| |
|
|
| |
|
|
| |
для: CrazyAngel
(17.11.2007 в 16:51)
| | | хм... не очень продуманно с include тогда, но можно сделать что-то типо того ...
<?php
$template = '
<html>
<head>
<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Долгота дня</title>
</head>
<body>
<p>Восход Солнца:
#sun_voshod#
</p>
<p>Заход Солнца:
#sun_zahod#
</p>
</body>
</html>';
$arDate = array(
"17-11-2007",
);
for($i=0;$i<count($arDate);$i++):
include $arDate[$i].".php" ;
$content = str_replace("#sun_voshod#",$sun_voshod,$template);
$content = str_replace("#sun_zahod#",$sun_zahod,$content);
// далее $content записывайем в файл $arDate[$i].".html"
endfor;
?>
|
| |
| |
|
|
| |
|
|
| |
для: CrazyAngel
(17.11.2007 в 17:18)
| | | Да, так должно получиться! Очень интересное решение! Большое спасибо! | |
| |
|
|