Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Подключении функции

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Zvero_O
Отправлено: 07 Февраля, 2010 - 13:39:30
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Написан свой шаблонизатор, вот кусок кода из него:
PHP:
скопировать код в буфер обмена
  1. $temp = preg_replace_callback('/<!-- load\[(.*)\] -->/',create_function('$matches', 'return $matches[1];'), $temp);


Т.е. из шаблона типа "<!-- load[siteNews(5);] -->" он вернёт "siteNews(5);".
Как мне теперь подключить указанную в комментарии функцию? Однако
 
 Top
valenok
Отправлено: 07 Февраля, 2010 - 14:20:10
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




eval или variables variables


-----
Truly yours, Sasha.
 
My status
 Top
RomAndry Администратор
Отправлено: 07 Февраля, 2010 - 14:30:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


Помог: 6 раз(а)




Вопрос о другом:
А зачам в верстке задавать количество тех же новостей?
 
My status
 Top
Zvero_O
Отправлено: 07 Февраля, 2010 - 14:42:37
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




RomAndry пишет:
Вопрос о другом:
А зачам в верстке задавать количество тех же новостей?

Функцию привёл чисто для примера.
(Добавление)
Теперь столкнулся с другой проблемой:
В функции используется "return", но в итоге не чего не выводится. Как исправить?
При использовании "echo" функция выводится в начале до-та. Недовольство, огорчение
(Добавление)
Кто нибудь поможет? К сегоднешнему дню хотелось бы доделать =(

(Отредактировано автором: 07 Февраля, 2010 - 15:15:41)

 
 Top
valenok
Отправлено: 08 Февраля, 2010 - 09:11:25
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Подумайте почему выводится вверху,
почему ретурн вообще ничего не печатает
и сами поймете что и как изменить.


-----
Truly yours, Sasha.
 
My status
 Top
Zvero_O
Отправлено: 08 Февраля, 2010 - 13:23:38
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




о_О я уже что только не пробовал...
Выводится сверху, потому что файл функций подключается с самого начала.
Тестировал функцию, всё отлично работает, но при использовании шаблонизатора - пустое место...
Почему return не хочет работать, и как вывести данные из функции?
 
 Top
Champion Супермодератор
Отправлено: 08 Февраля, 2010 - 13:43:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




А почему ты дкмаешь, что return не работает? Расскажи, может я пропустил момент, когда это произошло, но ретурн никогда не был оператором вывода.
 
 Top
Zvero_O
Отправлено: 08 Февраля, 2010 - 13:58:32
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




При str_replace('{TEST}', testFunc(), $text); всё работало. Когда в функции использовался return. Тогда почему в данном примере не работает?

(Отредактировано автором: 08 Февраля, 2010 - 14:09:45)

 
 Top
movEAX
Отправлено: 08 Февраля, 2010 - 15:50:57
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2.  function SiteNews($id_news){
  3.         return 'Новость_'.$id_news;
  4.  }
  5.  
  6.  $temp = '<!-- load[SiteNews(23)] -->';
  7.  
  8.                 '/<!-- load\[(.*)\] -->/',
  9.                 create_function(
  10.                     '$match',
  11.                     'eval(\'$news = \'.$match[1].\';\'); return $news;'),
  12.                 $temp);
  13.  

Что-то как-то криво.. но работает.


-----
армия.. самое убогое место
 
 Top
Zvero_O
Отправлено: 08 Февраля, 2010 - 16:12:56
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Спасибо кончено... Но это не то Недовольство, огорчение
Дело в том, что в комментарии заместо "<!-- load[siteNews(5);] -->" может быть "<!-- load[someFunction();] -->". Т.е. нужно выполнить указанную функцию, и вывести рез-ат...
(Добавление)
Ха-ха
Сделал!
PHP:
скопировать код в буфер обмена
  1. $temp = preg_replace_callback('/<!-- load\[(.*)\] -->/', create_function('$matches', 'return eval("return $matches[1];");'), $temp);


Всем спасибо, очень благодарен! Улыбка

(Отредактировано автором: 08 Февраля, 2010 - 16:13:28)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB