За месяц Октябрь, 2007

Шаблоны в php - за и против

В настоящее время написано много шаблонизаторов. Многие php-программисты, думаю, слышали о SMARTY, FastTemplate и иже с ними. У каждого из шаблонизаторов свои особенности, но все они созданы для решения задачи “разделения контента и дизйна“.

Сущность шаблонизатора: дизайн “размещается” в отдельных файлах. В тексте файлов-шаблонов встречаются оформленные по определенным правилам последовательности символов, вместо которых должны подставляться данные. Некоторые “продвинутые” шаблонизаторы позволяют использовать циклы, условные конструкции и вставки кода на PHP.

Возникает вопрос, “А зачем?”. И, думаю, не безосновательно. Ведь PHP позволяет делать всё это. Парадокс? Авторы шаблонизаторов пытаются при помощи интерпретатора PHP создать свой интерпретатор, и считают, что это необходимо, хорошо, ну или просто… неплохо. Проделана огромная работа, потрачены часы, дни, месяцы.. Неужели, всё это зря!?

Попытаемся оправдать применение шаблонизатора. Читать целиком »

Опубликовано Октябрь 26, 2007 | автор: levik  |  Комментарий (1) »

IE 3px float bug

IE 3px float bug - глюк IE 6.

<style>
#left {width: 200px;float: left; border: solid 1px #f00;}
#right {padding:0;border: solid 1px #0f0;margin: 0 20px 0 250px;}
#right p{background: #000;height: 100px;margin:0;}
</style><div id=”left”> </div>
<div id=”right”><p> </p></div>

В IE 6 появляется отступ 3 px у элемента p, который находится на уровне  элемента #left, если блок “обтекается” другим блоком (у которого не задана высота) и у последнего есть дочерний блок(у которого задана высота), то этот дочерний блок будет иметь отступ в 3px от родительского блока слева. Замудрено, но похоже на правду…

Как лечить!?
1) Прописать высоту у элемента right (#right:height:1%)
2) С помощью условных комментариев задать отрицательный отступ в ie6

<!–[if lte IE 6]>
<style type=”text/css”>
#right p {margin-left:-3px;}
</style>
<![endif]–>

Опубликовано Октябрь 18, 2007 | автор: levik  |  Нет комментариев »

Corel draw ругается по поводу msxml4

Если Corel draw ругается по поводу msxml4.
Решение: после установки MSXML4 выполни regsvr32 msxml4.dll

Опубликовано Октябрь 14, 2007 | автор: levik  |  Нет комментариев »

Прячем e-mail от спам-роботов

Ссылки вида mailto: становятся объектом поиска компаний, занимающихся массовых рассылок. Естественно, ищут они не вручную, а при помощи программ или скриптов. Чаще всего алгоритм поиска прост - ищем подстроку вида mailto:__EMAIL__ и выделяем из неё часть после двоеточия.

Способы обхода: Читать целиком »

Опубликовано Октябрь 10, 2007 | автор: levik  |  Комментарии (3) »

40 советов по оптимизации кода

  1. If a method can be static, declare it static. Speed improvement is by a factor of 4.
  2. echo is faster than print.
  3. Use echo’s multiple parameters instead of string concatenation.

Читать целиком »

Опубликовано Октябрь 9, 2007 | автор: levik  |  Нет комментариев »

mod_rewrite Примеры

Перенаправление на сайт с www

# нерабочий вариант:
RewriteCond %{SERVER_NAME} !^www.*$
RewriteRule ^(.*)$ http://www.%{SERVER_NAME}/$1 [R]

# рабочий вариант:
RewriteCond    %{HTTP_HOST}            !^www\.
RewriteRule    (.*)                http://www.%{HTTP_HOST}/$1 [R=301,L]

# Перенос наоборот - переносим все что с “www” на БЕЗ “www”
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]

Перенаправление http на https и наоборот (вместе не использовать!):


# с http на https
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L]
# с HTTPS на HTTP:
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]

Добавляем закрывающий слэш в конце

# этот вариант почему-то перебрасывал с домена www. на домен без www
RewriteRule ^([a-zA-Z0-9/-]*[^/])$ $1/ [R=301]
#Слегка модифицировал, и редирект стал осуществляться на тот же домен:
RewriteRule ^([a-zA-Z0-9/-]*[^/])$ http://%{HTTP_HOST}/$1/ [R=301]

Как склить index.php , index.html index.asp итд с главной страницей сайта (с корнем:


# при нулевой строке запроса перенаправляем ПОЛНЫЕ вхождения
RewriteCond %{REQUEST_URI} ^/(index.aspx|default.aspx|default.asp|index.asp|index.html|index.htm|index.php)$
RewriteCond %{QUERY_STRING} ^$
RewriteRule .* / [R=301,L]
# проверить на работоспособность
RewriteCond %{REQUEST_URI} ^/index\.(.+)$
RewriteRule .+ / [R=301,L]
# вариант не совсем корректный, т.к. %{THE_REQUEST}
#содержит запрос целиком: GET /index.php HTTP/1.1
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://www.yoursite.ru/ [R=301,L]

RewriteCond %{THE_REQUEST} index.html
RewriteRule index.html / [R=301,L]

Убираем index.php из адресов (перенаправляем со страниц вида index.php/page/3 на /page/3):

RewriteCond %{THE_REQUEST} index.php
RewriteRule ^index.php/(.*) /$1 [R=301,L]

Опубликовано Октябрь 5, 2007 | автор: levik  |  Комментарии (2) »

Вводное слово

Наконец-то я решился “завести” свой блог.  Почему решился!? Просто я считаю, что не стоит плодить сайты, которые не принесут пользы. От этого сайта польза очевидна - он нужен… мне лично. Хотя бы для того, чтобы собирать нужную мне информацию. Возможно, это неправильно… Но я так решил.
Имею право.

upd. Надеюсь, информация, собранная здесь, кому-нибудь окажется полезной…
Удачи!

Опубликовано Октябрь 1, 2007 | автор: levik  |  Нет комментариев »