[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Функция preg_replace
jalvar

<?
#>> > > > > > > > > > > > > > > >> >> >>>
#! class.loads.php
#! Class file
#! Файл загрузок компонентов, плагинов,модулей и шаблонов
#! Разработку ведет:Jallvar
#>> > > > > > > > > > > > > > > >> >> >>>

class load
{
function template ($template)
{
if(!file_exists("template/".$template."/index.php"))
{
exit("Не могу подключить шаблон!");
}
return require_once("template/".$template."/index.php");
}
function template_load ()
{
$load=$this->template($template);
$load=preg_replace("?HEADER?","СОДЕРЖИМОЕ ФУНКЦИИ site_header",$load)
}
}

?>


Мне надо чтобы ?HEADER? в строке
$load=preg_replace("?HEADER?","СОДЕРЖИМОЕ ФУНКЦИИ site_header",$load) заменилось на содержимое функции site_header(); как это правильно сделать?



Спустя 21 минута, 24 секунды (15.07.2010 - 22:45) tmt0086 написал(а):
можешь скинуть что у тебя в $load ? а то я так чуть догнать не могу)

Спустя 5 часов, 41 минута, 12 секунд (16.07.2010 - 04:26) Wird_34 написал(а):
Не понял что-то в чем сложность, вот функция будет заменять 'HEADER' в локальной переменной $load на то, что вернет функция site_header().
preg_replace('?HEADER?', site_header(), $load)


Только имхо тут лучше воспользоваться функцией str_replace:
str_replace('HEADER', site_header(), $load)

она быстрее работает.

И еще не понятна задача функции template_load, если она ничего не выводит и ничего не возвращает, а то, что она присваивает переменной $load теряется после ее завершения.

Спустя 6 часов, 36 минут, 39 секунд (16.07.2010 - 11:03) jalvar написал(а):
А так можно ? В открытую функцию вызывать?

Спустя 15 минут, 40 секунд (16.07.2010 - 11:19) Wird_34 написал(а):
Что значит в открытую? У тебя функция site_header() является методом класса? Если так то ответ нет.

Спустя 5 минут, 26 секунд (16.07.2010 - 11:24) qpayct написал(а):
jalvar
если я вас правильно понял, вы хотите выполнять пхп скрипт после загрузки страницы? или иначе зачем менять текст на пхп функцию?

Спустя 6 минут, 12 секунд (16.07.2010 - 11:30) Wird_34 написал(а):
qpayct, разве он не шаблонизатор пишет? Есть шаблон в какой-то хтмлке, он его грузит, заменяет петтерны на сгенерированный код и выводит.

Спустя 3 минуты, 12 секунд (16.07.2010 - 11:34) qpayct написал(а):
Wird_34
тогда надо говорить не "содержимое функции", а "результат функции" blink.gif

Спустя 2 часа, 20 минут, 2 секунды (16.07.2010 - 13:54) jalvar написал(а):
Помогите функция str_replace не пашет! Не производит замену констант
он так и выводит _HEADER_
	//Подключение шаблона
function template ($template)
{
if(!file_exists("templates/".$template."/index.php"))
{
exit("Не могу подключить шаблон!");
}
return require_once("templates/".$template."/index.php");
}
//Подключение блоков сайта
function template_load ($template,$system_url)
{
$load=$this->template($template);
$load=str_replace('_URL_', $system_url, $load);
$load=str_replace('_HEADER_', $this->site_header(), $load);
$load=str_replace('_CONTENT_', site_content(), $load);
$load=str_replace('load="RIGHT-BLOCK"', site_right_block(), $load);
$load=str_replace('load="LEFT-BLOCK"', site_left_block(), $load);
echo $load;
}

Спустя 20 минут, 41 секунда (16.07.2010 - 14:14) tomash написал(а):
jalvar
Константа для того и константа! Что содержимое поменять нельзя)))

Спустя 1 минута, 10 секунд (16.07.2010 - 14:15) linker написал(а):
Все в корне неверно. Что это за конструкция:
return require_once("templates/".$template."/index.php");
Что вы ожидаете узреть в $load после выполнения
$load=$this->template($template);
Вы думаете $load будет содержать контент файла index.php? Вы ошибаетесь, начните изучать PHP с самого начала.

Спустя 32 минуты, 11 секунд (16.07.2010 - 14:48) jalvar написал(а):
А как это сделать по другому. При echo $load; Шаблон выводится!

Спустя 12 минут, 44 секунды (16.07.2010 - 15:00) linker написал(а):
Шаблон выводится не по echo, а по require_once("templates/".$template."/index.php"); Уберите echo и вы все равно увидите шаблон.

Спустя 2 минуты, 58 секунд (16.07.2010 - 15:03) jalvar написал(а):
Ну и как сделать замену констант?

Спустя 3 минуты, 9 секунд (16.07.2010 - 15:06) linker написал(а):
Во-первых, почему расширение php? Это скрипты, а не шаблоны. Шаблоны, текстовые, хтмльные файлы, а значит работать надо с ними как с обычными файлами:
function template ($template)
{
if(!file_exists("templates/".$template."/index.php"))
{
exit("Не могу подключить шаблон!");
}
return file_get_content("templates/".$template."/index.php");
}

function template_load ($template,$system_url)
{
$load=$this->template($template);
$load=str_replace('_URL_', $system_url, $load);
$load=str_replace('_HEADER_', $this->site_header(), $load);
$load=str_replace('_CONTENT_', site_content(), $load);
$load=str_replace('load="RIGHT-BLOCK"', site_right_block(), $load);
$load=str_replace('load="LEFT-BLOCK"', site_left_block(), $load);
echo $load;
}

Спустя 1 минута, 59 секунд (16.07.2010 - 15:08) jalvar написал(а):
Не понял unsure.gif
Как мне изменить константы ебаны...?

Спустя 4 минуты, 17 секунд (16.07.2010 - 15:13) linker написал(а):
Что вы не поняли? Я дал код, вставляете и наслаждаетесь. smile.gif

Спустя 1 час, 42 минуты, 59 секунд (16.07.2010 - 16:56) jalvar написал(а):
Fatal error: Call to undefined function file_get_content() in Z:\home\localhost\www\8cmspupil\class\class.loads.php on line 43


_____________
jallvar.oxnull.net - мой блог.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.