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]   

> Описание: Помогите с переменными
kazmikro
Отправлено: 09 Марта, 2011 - 19:40:34
Post Id



Гость


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


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




Беру в пример DLE CMS / Там есть папка с дизайном сайта , причём в каждом файле дизайна идёт инклуд блока или тд такого вида ( Например : Архив сообщений {arhive} причём файл дизайна имеет формат .tpl и в нём нету ни какого php кода ) Прошу помочь !
 
 Top
DeepVarvar Супермодератор
Отправлено: 09 Марта, 2011 - 19:52:25
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. class buffer {
  3.         private $content; // приватная переменная - доступна только внутри экземпляра
  4.         public function __construct() {
  5.                 $this->clear(); // очищаем на всякий случай
  6.                 }
  7.         private function clear() {
  8.                 $this->content = ''; // приватная ф-ция, вот оно как очищается
  9.                 }
  10.         public function read() {
  11.                 $tmp = $this->content; // присвоили чтоб вернуть
  12.                 $this->clear(); // почистили
  13.                 return $tmp; // вернули
  14.                 }
  15.         public function send($str) {
  16.                 if(is_string($str)) { $this->content .= $str; } // впихнули шаблон в переменную
  17.                 }
  18.         public function parse($arr) {
  19.                 foreach ($arr as $name => $value) {
  20.                         if(!is_array($value)) { // переписываем все что совпало по имени макроса
  21.                                 $this->content = str_replace('{'.$name.'}',$value,$this->content);
  22.                                 }
  23.                         }
  24.                 }
  25.         }
  26.  
  27. /////////////////////////////////////////////////////
  28.  
  29. $template = '<div>{username} - {somestring}</div>'; // как вариант file_get_contents("файл шаблона");
  30.  
  31. $out = new buffer; // cоздали объект
  32. $out->send($template); // послали в него шаблон
  33.  
  34. $replace_array['username'] = 'Вася пупкин'; // вася пупкин
  35. $replace_array['somestring'] = 'Любая другая строка'; // хоть война и мир
  36.  
  37. $out->parse($replace_array); // скормили массив
  38. echo $out->read(); // получили результат
  39.  

Примерно так это происходит. И реплейсится там около 1000 таких макросов на одну страницу...

(Отредактировано автором: 09 Марта, 2011 - 20:12:05)

 
 Top
kazmikro
Отправлено: 09 Марта, 2011 - 20:04:47
Post Id



Гость


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


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




Добавь пожалуйста комментарии к линиям
 
 Top
DeepVarvar Супермодератор
Отправлено: 09 Марта, 2011 - 20:12:30
Post Id



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


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


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




Добавил
 
 Top
kazmikro
Отправлено: 09 Марта, 2011 - 20:13:22
Post Id



Гость


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


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




Спасибо так проще будет разбираться !
(Добавление)
Часто ли пользуются таким случаем с переменными в виде {} ?,
Они на работоспособность или нагрузку не влияют ?
 
 Top
DeepVarvar Супермодератор
Отправлено: 09 Марта, 2011 - 20:21:11
Post Id



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


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


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




Это не переменные...
PHP:
скопировать код в буфер обмена
  1. $a = 'Водку';
  2. $text = 'Я люблю пить {чай}';
  3. echo str_replace('{чай}',$a,$text);
 
 Top
JustUserR
Отправлено: 10 Марта, 2011 - 16:04:00
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




kazmikro пишет:
Часто ли пользуются таким случаем с переменными в виде {} ?,
Они на работоспособность или нагрузку не влияют ?
Использование предполагаемой конструкции описания позиционных переменных, позволяет осуществлять интерполяцию целевых информационных полей в ассоциированном урвоне трактования в оригинальную строковую константу, что позволяет осуществлять возможность сохранения отложенного вычисления интегрируемого объекта данных, без обеспечения необходимости поддержания дифферентного уровня операционного трактования для позиционной строковой константы


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB