Как стать автором
Обновить

Комментарии 22

а где результат посмотреть то?
Так картинка в начале статьи это вы сами нафотошопили или результат работы предложенного механизма?)
Шаблонизатор в данной статье будет лишним…
if(empty($tpl_name) || !file_exists($tpl_name)){
	return false;
} else {
	$this->html = join('',file($tpl_name));
}

file-get-contents() is similar to file(), except that file_get_contents() returns the file in a string, starting at the specified offset up to maxlen bytes. On failure, file_get_contents() will return FALSE.

foreach($this->values as $find => $replace){
	$this->html = str_replace($find, $replace, $this->html);
}

If search and replace are arrays, then str_replace() takes a value from each array and uses them to search and replace on subject. If replace has fewer values than search, then an empty string is used for the rest of replacement values. If search is an array and replace is a string, then this replacement string is used for every value of search. The converse would not make sense, though.
echo $tpl->html;


Тоже не лучший вариант.
А почему не
$this->html = file_get_contents($tpl_name);
$this->html = str_replace(array_keys($this->values), array_values($this->values), $this->html);


?
Ну я про это и говорю, цитируя код автора.
$this->html = strtr($this->html, $this->values);

;)
Вообще супер! :-)
У меня сомнения, относительно практического применения.

Почему просто не «наложить» число на картинку средствами рнр?

Обычно, подобные графические счётчики до 10кб, потому без проблем можно создать 2 «чистые» картинки-шаблона, первая для красивого фона, вторая — для фона счётчика.

В результате адрес картинки типо такой: icon.php?type=email&count=5
Далее смотрим, если file_exists(IMAGE_DIR. 'icon-email-5.png') === false (или jpeg, не суть) — скрипт берёт фон иконки, фон счётчика, пишет нужный номер на счётчик, клеит счётчик на фон и сохраняет как icon-email-5.php.

В итоге объем кода на 20-30 строк, GD есть практически во всех РНР, результаты кэшируются без необходимости каждый раз что-то читать, или парсить, или пересоздавать.

А так как величина счётчиков обычно не больше 15-ти (количество новых емейл-сообщений, комментариев, и т.п.) то всё быстро закэшируется и будет ок.

А можно вообще сделать rewrite через .htaccess и site.name.com/images/icons/email-5.png переводить в site.name.com/icon.php?type=email&count=5 — так вообще красота получится :)
Не всегда у всех верстка одинаково отображается :)
image
это не имеет особого значения, код написан на коленке для комментария, открыт был единожды в FF.
простите, а в каком Г вы это открыли, что даже margin auto не работает? Даже ie 6 такого не творит. Квиркс мод?
Так лучше? dl.dropbox.com/u/3997905/trash/iphone-ico/2.html
ie7, пользуюсь хромом, но глянуть верстку в пятерке браузеров и нескольких версиях ие — 5 сек, обычная процедура для просмотра верстки.
вы хотите сказать недостированность примера влияет на её потенциальную применимость?
Вы бы смотрели в корень, а не попрекали пылью на листочках.

зы: в ie7 такого быть не может по определению (если вы включили квиркс мод, то там разорвёт все, что угодно, и не знать этого мог только дилетант), повторю: у вас не сработал margin:auto, такое последний раз было в ie5.5 в 2000 году. У вас не ие7 на скриншоте, а 9-10 с умышленно угробленными настройками. Надо было в оутлуке открыть, чего уж там.
Проехали, статья не о этом, просто показал скрин из осла.
Чего так задело? (Вопрос риторический, отвечать не стоит)
А не обращайте внимания, склочность характера. не всегда умею обходить дураков стороной.

Чего так задело? вы намекнули на негодность решения намеренно задавив настройками браузер и показали скриншот. Точно также можно снять с феррари колёса и снять видео как она не едет.
Не коим образом не хотел упрекнуть вашим профессиональным качествам в верстке.

Извините, если в таком свете показался этот зловещий скрин :)

* покинул чат
Если мог бы, то яростно плюсанул. Вы просто уделали эту статью :)
Мне кажется, в статье рассказывается о тех случаях, когда нужно именно картинку получить.
В SVG же вроде текст текстом, т.е. по сути получается то же самое, что и при вёрстке, нет?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации