Posts tagged ‘php’

dokuwiki: custom e-mail notification

Я использую dokuwiki не для публикации статей, а больше как удобный каталог. То есть подопечные менеджеры могут создавать в нем разделы и размещать документы с описаниями. Просто текста там совсем немного. При этом все сотрудники должны быть оповещены об изменениях в каталоге. Почтовая рассылка и механизм подписывания/отписывания от нее есть. Но письма, которые приходят к пользователям обладают довольно техническим шаблоном. То есть он содержит тэги HTML, специальные пометки и т.д. Это хорошо для настоящих бойцов вики. Но тех, кто просто должен заглядывать в нее, как в справочник, такие письма пугают и они их просто не читают. (далее…)

Февраль 9, 2012 at 17:11 Оставьте комментарий

php: string contains substring

В php нет как такового contains или include для строк. Но есть суррогат — strpos($string,$substring); которая возвращает позицию $substring в $string. Функция возвращает 0 и в случае неудачи. То есть ей без разницы — нет этой substring в string или она расположилась в самом начале строки. Беда-беда. Поэтому надо быть аккуратным с такими конструкциями, как:

$pos = strpos($string,$substring);
if ($pos) return "Contains";
else return "Fail";

Необходимо проверять на строгое равенство/неравенство логическим true|false. Вот как-то так:

$pos = strpos($string,$substring);
if($pos !== false) return "Contains!";
else return "Fail!";

Февраль 9, 2012 at 14:19 Оставьте комментарий

.htaccess: 301 редирект php-страниц с параметрами.

Я не он, я только учусь) Из-за нужд seo пришлось делать этот самый безопасный для них redirect.
В Интернете много примеров, как пользоваться .htaccess, в частности есть отличная статья на хабре про его дао: тут.
Но там в основном рассматриваются варианты перенаправления статических html-страниц или классический случай домена с www и без него.
А что делать, если возникла странная задача: сделать редирект страницы http://www.example.ru/index.php?id=16 на http://www.example.ru/index.php?id=17 ?
Простой редирект(без RewriteEngine) не даст ничего или сайт упадет с ошибкой 500.
Сделать, как со статическими страницами: RewriteRule index.php?id=16 на /index.php?id=17 [R=301,L] тоже ничегошеньки не даст. Только сайт тут не упадет, что в принципе бонус.
Все дело в том, что в исходной строке есть параметры (все, что после знака вопроса).
Поэтому делаем так:

RewriteCond %{QUERY_STRING} ^id=16$
RewriteRule ^index.php /index.php?id=17 [L,R=301]

По сути это означает следующее: если в URL есть подстрока параметров id=16, то подставить /index.php?id=17, вместо того, что сейчас обрабатывается (а это все то же URL. RuleEngine параметры не смотрит, и URL для него просто строка — абсолютный путь до файла, содержащего страницу. Так что где .htaccess — там и «корень» URL. Кроме того, apache будет крутить эту строку столько раз через правила .htaccess, пока она не перестанет меняться.). enjoy!

Февраль 2, 2012 at 16:22 14 комментариев

Hello world! Про Roundcube.

Вот и наконец моя первая статья.

Недавно полностью переделала корпоративную почту. Выбрала связку postfix+dovecot+пользователи в mysql.  Веб-интерфейс прикрутила сразу и забыла. Вначале это был squirrelmail. Все было прекрасно. Кроме одного — интерфейс не очень симпатичный. Прислушалась к требованиям пользователей и заменила его на roundcube.
(далее…)

Июнь 9, 2011 at 11:27 1 комментарий