PHP, RegExp и ассоциативный массив
PHP Февраль 18th, 2010
Узнал, что можно сохранить результат проверки на соответствие регулярному выражению в ассоциативный массив. Делается это, примерно, следующим образом.
Tags: regexp
Apache. SetEnv.
Hints Февраль 4th, 2010
Если в httpd.conf вписать
SetEnv HELLO 'WORLD'
то код
echo $_SERVER['HELLO'];
напечатает «WORLD». А если, кроме или вместо этого, в .htaccess вписать
SetEnv HELLO 'HELLO'
то на экране будет «HELLO». Как и ожидалось.
Вот такая полезняшка может использоваться, например, для следующего случая.
if (!empty($_SERVER['ENV']))
{
require_once('conf.' . ($_SERVER['ENV'] == 'test' ? 'test' : 'dev') . '.php');
}
else
{
require_once('conf.prod.php');
}
Только SetEnv нужно писать в httpd.conf, чтобы случайно не перенести кривой .htaccess на рабочий сервер.
Tags: apache
Wildflower – CakePHP CMS
CakePHP Январь 30th, 2010

Wildflower - CakePHP CMS
Из всех найденных cms на CakePHP, эту считаю самой самой классной. 12 января вышел релиз 1.3 версии. Предыдущая бета версия была, вроде, в мае прошлого года. Относительно регулярно поглядывал не появился ли релиз и вот он есть. Хорошо, что еще раз глянул на первое предложение гугла по запросу «cakephp». Она и в гугле первая.
Минуту назад хотел продолжать писать чем мне так понравилась эта цмска, но так уж лень, что капец. Суббота сегодня – это раз. На тренировку пора выходить, нужно порезвиться – это два. Посему, просто пообещаю поделиться каким-нибудь самописным плагином. Если не поделюсь, то я ж*опа.
Tags: фреймворк
Docx в doc. Довольно простой способ.
Hints Январь 18th, 2010
1. http://docs.google.com/
2. Upload
3. File -> Download as -> Word
Вполне прилично получается для простеньких документов.
Tags: hints
Небольшая функция для составления todo списка
CakePHP, Download Ноябрь 19th, 2009
Проблема следующая. Когда добавляем проект с каким-либо фреймворком в какую-либо IDE, на вкладке со списком тасков появляются дела, которые запланировали разработчики фреймворка. Написал небольшую функцию, которая формирует список моих дел.
function getTasksFromFile($file)
{
// TODO: filemtime(); test:)
$tasks = array();
$lines = file($file); // не всегда что надо. как чинить?
foreach ($lines as $n=>$line)
{
$p = stripos($line, 'todo' . ':');
if ($p !== false)
{
$task = trim(substr($line, $p + 5));
$file = str_replace($this->basePath, '', $file);
$tasks[] = array('file' => $file, 'line' => $n+1, 'task' => $task);
}
}
return $tasks;
}
Как-то так. Оформил ее в виде плагина для CakePHP 1.2 и дарю вам: cakephp-todo-plugin :) В файл routes.php добавляем строку
Router::connect('/admin/todo/*', array('controller' => 'todo', 'plugin' => 'todo', 'admin' => true));
И смотрим что еще осталось поправить в скриптах.
Удачи!
About