Новая версия Zend Framework

И так, вышла новая стабильная версия Zend Framework под цыфарками 1.7.0.
В крадце изменения по сравнению с предыдущими версиями состоят в следующем:

* Добавление поддержки библиотек от Adobe, в частности Flex на уровне AMF протокола;
* Добавление поддержки JS фрейворка JQuery, расширение поддержки Dojo;
* Расширение API основных компонентов (Zend_Loader, Zend_Controller);
* Расширение API применяемых компонентов (Zend_Translate, Zend_File, Zend_Soap, Zend_Search_Lucene);
* Добавление поддержки Twitter`a;
* Расширенна возможность работы на базе UNIX. Читать полностью »

Число прописью (словами). Функция парсирования триады

Данная функция возвращает строку из числа

<?php
// Функция парсирования триады
// $num - целое число от 0 до 999
// $words - массив, в котором элемент с индексом
// 0 - написание числа 1 (например - один', 'одна')
// 1 - написание числа 2 (аналогично)
// 2 - единицы в единственном числе им.падеже(рубль')
// 3 - единицы в единственном числе род.падеже('рубля')
// 4 - единицы во множественном числе им.падеже('рублей')

function ParseTriad($num, $words)
{
  $hundreds = array('', 'сто', 'двести', 'триста', 'четыреста', 'пятьсот', 'шестьсот', 'семьсот', 'восемьсот', 'девятьсот');
  $decads = array('двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто');
  $fdecads = array('десять', 'одиннадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать');
  $ones = array('', $words[0], $words[1], 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять');

  $result = '';
  $h = floor($num / 100);
  $result .= $hundreds[$h];

  $d = floor(($num - $h * 100) / 10);
  $c = ($num - $h * 100 - $d*10);

  $result .= ($result != '') ? ' ' : '';

  if($d == 1) { $result .= $fdecads[$c]; }
    else {
      if($d > 1) $result .= $decads[$d-2] . ' ';
      $result .= $ones[$c];
    }
  $result .= ($result != '') ? ' ' : '';

  switch ($c) {
    case 1:
      $result .= ($d != 1) ? $words[2] : $words[4];
    break;
    case 2:
    case 3:
    case 4:
      $result .= ($d != 1) ? $words[3] : $words[4];
    break;
    default:
      if ($num > 0) { $result .= $words[4]; }
  }
  return $result;
}
?>

Читать полностью »

Ошибка в Wordpress. Warning: Cannot modify header information - headers already sent by …

Часто из-за использования стандартного блокнота в windows при редактировании доступа к базе данных в файле wp-config.php, в начало файла записывается лишний символ (иероглиф, по-простому). После чего, сервер не может отправить заголовки, так как вываливается ошибка на экран. Например, такая:

Warning: Cannot modify header information - headers already sent by (output started at /home/uname/public_html/site.ru/wp-config.php:1) in /home/uname/public_html/site.ru/wp-includes/pluggable.php on line 770

Решить такую проблему очень просто, вернее не допустить появление ее )) Читать полностью »

PHPConf 2008 29-30мая, Москва. Видео с конференции

Что нового в PHP-5.3 - Дмитрий Стогов Zend Technologies


- namespace-ы
- ООП расширения
- late static binding (static:
- __callstatic()
- динамический доступ к статическим данным ($classname::method(), $classname::$prop )
- nowdoc (< <<'EOF ')
- ?: operator
- сборщик мусора
- разные php.ini директивы для разных каталогов (аналог .htacces для FastCGI)
- интересные новые возможности расширений (ext/openssl, ext/phar, ext/intl) Читать полностью »

Плагин для подсветки кода в wordpress. Wp-Prettify + Escape

Это немного доработанный плагин, подсветки кода Wp-Prettify + идея от плагина auto escape, который, грубо говоря, делал коду htmlspecialchars().

WP-Prettify - это плагин для Wordpress, который предназначен для подсветки програмного кода языков программирования на web-страницах.
Он основан на движке google-code-prettify (http://code.google.com/p/google-code-prettify/)
и способен подсвечивать следующие языки программирования: C/С++, C#, Java, Python, Bash,
SQL, HTML, XML, CSS, Javascript, Makefiles, Ruby, PHP, Awk, Perl. Читать полностью »

Реализация почтовых форм без php и cgi. Альтернатива для бесплатных хостингов

Как известно на бесплатных хостингах обычно не разрешают использовать скрипты и базы данных, которые зачастую неоптимизированны и очень грузят сервера.

Можно использовать такое решение нетолько для почтовых форм, но и для любых подобного рода задач.

Начнем. Нам необходимо два хостинга:
- на первом у нас только есть возможность использовать html + javascript (клиентские языки). Пусть будет site1.ru
- второй хостинг должен поддерживать php, или другой серверный язык. Данный пример для языка php, назовем site2.ru Читать полностью »

.htaccess

.htaccess

Выделение текста в форме при клике (OnClick) или по другому событию

функцию можно использовать для нескольких элементов, передавая параметр - i

<script language="javascript" type="text/javascript">
function Sel(i) {
	document.forms[0].elements[i].select();
}
</script>

Читать полностью »

Перекодирование текста из UTF-8 в windows-1251

Бывают случаи, когда использовать функция iconv нет возможности. Например, на сервере не установлено это расширение (iconv). Ниже приведенная функция поможет решить эту задачу. Используется для конвертирования символов кириллицы, так как латинские символы выглядят одинаково в любых кодировках Читать полностью »

Убийство цикла for

Циклы - это то, что большинство программистов училось считать само собой разумеющимся. Все знают как ими пользоваться, но никто не задумывался об этом процессе более детально. В этой статье, я исследую то, что требуется, чтобы заменить for(;;) на контролируемые циклы со счетчиком операций и покажу немного примеров, для демонстрации потенциальных выгод этого подхода.
Почти любая задача, которая требует повторения, будет требовать некоторого типа повторяющих конструкций. Существует множество решений, каждый с их собственными достоинствами и недостатками. В основном эта статья будет про различные циклы со счетчикам операций. Моя цель состоит в том, чтобы отговорить разработчиков PHP от использования for в пользу foreach там, где это возможно. Читать полностью »