Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помощь с Шаблоном
 
 автор: fiper   (04.01.2008 в 12:47)   письмо автору
 
 

Есть файл с шаблоном. template.php

в шаблоне следущий код:


<?
$short
=<<<HTML
абракадабра {gal}
HTML;
?>


примерный код другого файла


while($row=mysql_fetch_array($sql)){

include 'template.php';

# Каким образом вызвать функцию в том месте где указано {gal}, те gal();?


echo $short;

}

   
 
 автор: Drago   (04.01.2008 в 13:03)   письмо автору
 
   для: fiper   (04.01.2008 в 12:47)
 

Например так:

<?
while($row=mysql_fetch_array($sql)){ 

include 
'template.php'

$short str_replace("{gal}"gal(), $short);

echo 
$short

}
?>

   
 
 автор: fiper   (04.01.2008 в 13:15)   письмо автору
 
   для: Drago   (04.01.2008 в 13:03)
 

Я уже делал так. Вы пробовали?)) Функция будет вызвана в самой функцие str_replace() если я не ошибаюсь

   
 
 автор: Drago   (04.01.2008 в 13:57)   письмо автору
 
   для: fiper   (04.01.2008 в 13:15)
 

Выражение "{gal}" будет заменено на результат работы функции gal().

   
 
 автор: fiper   (04.01.2008 в 19:47)   письмо автору
 
   для: Drago   (04.01.2008 в 13:57)
 

Это понятно ,что будет заменено, но выводиться будет в другом месте над выводом шаблона

Даже если не подключать шаблон , функция всё равно напишет результат

   
 
 автор: Drago   (04.01.2008 в 19:55)   письмо автору
 
   для: fiper   (04.01.2008 в 19:47)
 

Что делает ваша функция? Она возвращает значение или выводит?

   
 
 автор: fiper   (04.01.2008 в 20:32)   письмо автору
 
   для: Drago   (04.01.2008 в 19:55)
 

Выводит.нАпример


function gal(){
echo '123123';

}

   
 
 автор: Drago   (04.01.2008 в 21:13)   письмо автору
 
   для: fiper   (04.01.2008 в 20:32)
 

Так исправьте, чтобы возвращала. Если это не принципиально, конечно.


<?
function gal(){ 
return 
'123123'

}
?>

   
 
 автор: fiper   (04.01.2008 в 21:30)   письмо автору
 
   для: Drago   (04.01.2008 в 21:13)
 

Мда, точно. Спасибо. А можно ли заменить {gal} на


include 'gal.php'; 
?

Знаю, что инклуд 1 возвращает вроде как. Не пробовал ещё, но думаю, что просто поместить include в функцию?

   
 
 автор: Drago   (04.01.2008 в 22:47)   письмо автору
 
   для: fiper   (04.01.2008 в 21:30)
 

Нет. include подключает файл и оперирует с его содержимым так, как будто оно находится в исходном коде. Если в подключаемом файле будет вывод в браузер, то будет также, как и с вашей функцией.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования